跳转到内容

Provider 使用手册

SyncTV 的 Provider 把外部平台、媒体服务器和 NAS 资源转换成可播放媒体。App 会消费 Provider 返回的 typed source config、封面、缩略图、字幕、弹幕、清晰度和代理地址。

  1. 在 App 的账号中心打开 平台绑定,选择 Provider 和 Provider instance。
  2. 按 Provider 要求登录、扫码或填写 Cookie、token、API key。
  3. 进入房间媒体库,打开添加媒体,选择对应 Provider。
  4. 输入 URL、资源 ID,或使用 Provider 的分类、搜索、收藏、历史、目录浏览入口。
  5. 先预览资源。列表项会携带可直接添加的 typed media 或 playlist source config。
  6. 添加单个媒体、选择部分预览结果,或创建动态播放列表。
  7. 播放时从 Provider 返回的 mode 中选择清晰度、直连或 proxy mode。

Provider instance 表示资源解析发生的位置。默认 instance 在 SyncTV 主进程内运行;管理员也可以配置远程 instance。绑定凭据、媒体来源和播放请求始终保留 instance 归属。

使用房主凭据 会把来源绑定到房间所有者的 Provider 凭据。个人收藏、历史、关注列表和私有媒体库适合使用该选项。关闭时,浏览和播放使用当前用户的凭据。

Provider绑定方式单媒体动态播放列表与浏览播放增强
Bilibili二维码或短信视频、多 P、番剧单集、直播热门、推荐、UP、收藏夹、合集、系列、稍后观看、历史、追番、番剧时间表与索引、直播首页/关注/分区DASH、清晰度、字幕、弹幕、封面、分 P 缩略图
TwitchOAuth access token;Followed Live 需要 user:read:follows直播、VOD、Clip频道 Videos/Highlights/Uploads/Clips、关注直播、分类直播、直播搜索HLS 清晰度、章节、Storyboard、聊天、频道排期
YouTube公开资源可匿名;可绑定 Visitor Data、PO Token、Cookie视频、Shorts、直播播放列表、频道 Videos/Shorts/Live、搜索、热门、订阅、喜欢、稍后观看原生/自适应格式、字幕、Storyboard、封面
抖音可绑定 Cookie视频、直播用户作品多码率、封面、直播聊天
TikTok可绑定 Cookie视频、直播用户作品多格式、字幕、封面、图集音频
虎牙公开解析直播、视频URL/房间入口HLS/FLV、CDN、清晰度、直播聊天
斗鱼公开解析直播房间号、别名或 URLHLS/FLV、CDN、清晰度、编码、直播聊天
AcFun公开解析视频、番剧、直播URL/资源 ID清晰度、标签、点播/直播弹幕、封面
CCTV公开解析栏目页、节目页和可识别资源URL/资源 IDHLS/MP4、章节、元数据、封面
Emby/Jellyfin服务器地址、用户名和密码或 API key影片、剧集、视频继续观看、Next Up、最近添加、收藏影片、收藏演员及作品、播放列表、合集、分类原始流、服务端转码、字幕、封面、播放进度回写
Alist地址、用户名、密码,可带 OTP文件目录、搜索缩略图、字幕、原始流/转码、Range
Cloudreve地址、邮箱和密码文件目录、搜索,自动适配 page/cursor 分页签名播放 URL、封面/缩略图、Range
FNOS主端点、用户名、密码,可带 2FA;可发现 WebDAV 和影视端点文件、影视库条目文件目录、影视库、收藏、历史文件级预览、影视海报、原生转码、收藏/已看状态、播放进度
QNAP QTS / QuTS hero地址、用户名和密码文件File Station 目录与搜索缩略图、预转码清晰度、实时转码能力探测、Range
Synology DSM地址、用户名、密码,可带 OTPFile Station 文件、Video Station 条目文件、电影、剧集、家庭视频、电视录像缩略图、海报、字幕/音轨、remux、播放进度
Nextcloud地址、用户名和应用密码,或 Login Flow文件文件夹、收藏、搜索Preview API、BlurHash、尺寸和时长元数据、Range
Seafile地址、用户名和密码;加密资料库另行解锁文件资料库目录、星标、搜索缩略图、下载链接、加密资料库浏览、Range
TrueNAS地址和 API key文件/mnt 范围内目录与搜索文件元数据、ACL/ZFS 属性、Range
Direct URLHTTP(S) 文件、HLS 等固定来源自定义 header、Range、HLS segment proxy
RTMP / Live Proxy房间权限或管理员配置推流、外部 RTMP/HTTP-FLV直播来源SyncTV HLS/FLV、生命周期管理

绑定后可以访问收藏、稍后观看、历史、关注直播和追番等账号数据。公开视频、番剧和直播也可以匿名解析。

App 提供两种添加路径:

  • URL 解析:输入视频、番剧季度/单集、直播间、UP 空间、收藏夹、合集、系列或直播分区 URL。后端返回多个 typed candidate;多 P 视频可以选择部分分 P,也可以创建完整动态播放列表。
  • 资源发现:直接选择热门、推荐、UP 视频、收藏夹、历史、追番、直播首页、关注直播、直播分区、番剧时间表或番剧索引。

番剧时间表支持番剧、影视和国创,时间范围为前后 0 到 7 天。预览同时展示已发布、待播和延期条目;已发布条目携带真实 episode ID 与 CID。番剧索引支持类别、排序、升降序、连载状态、地区、年份和风格筛选,选择季度后可以继续预览完整剧集列表。

动态播放列表保留上游分页语义。历史使用 Bilibili 原生 cursor,热门、UP、收藏、季度和索引使用各自的 page/cursor 规则。顺序、单曲循环、列表循环和随机播放均由 Core 根据 typed target 推进。

绑定时填写 OAuth access token。SyncTV 会保存 Twitch 用户 ID、client ID 和 scopes。关注直播入口需要 user:read:follows scope;App 会根据当前 instance 的绑定能力控制入口。

媒体 URL 支持直播频道、VOD 和 Clip。频道动态播放列表可以选择 Videos、Highlights、Uploads 或 Clips。发现入口包括关注直播、Top Categories、分类直播、直播频道搜索和 Broadcaster Schedule。

公开视频可以直接解析。绑定 Visitor Data 或 PO Token 可以提高受限请求的成功率;订阅、喜欢和稍后观看需要 Cookie。Cookie 只在服务端凭据存储和上游请求中使用。

视频输入支持 ID、watchyoutu.beshortslive URL。播放列表支持 URL 或 ID。频道支持 UC... ID 和 /channel/UC... URL,并可以分别创建 Videos、Shorts、Live 动态播放列表。

预览列表支持多选添加,也可以把整个来源保存为动态播放列表。个人 feed 会根据当前 Provider instance 的 Cookie 能力启用;房主共享凭据模式使用房主绑定。

两者都有独立的数据模型和解析流程。输入视频或直播 URL 可以预览平台元数据和播放变体;输入用户主页可以解析稳定用户标识并创建用户作品动态播放列表。Cookie 绑定适用于需要登录态或地区/风控上下文的请求。

这些 Provider 以公开解析为主:

  • 虎牙支持直播间和视频,预览清晰度、CDN、HLS/FLV 和聊天能力。
  • 斗鱼支持数字房间号、别名和 URL,预览编码、清晰度与 CDN。
  • AcFun 支持视频、番剧和直播,点播与直播弹幕使用各自协议。
  • CCTV 支持已知栏目、节目和嵌入页,预览原生流、章节和元数据。

两者共用 emby Provider。绑定时填写服务器根地址、目标用户名和密码,或使用 API key。上游用户权限决定可浏览的媒体库、转码和字幕能力。

动态来源包括继续观看、Next Up、最近添加、收藏影片、收藏演员、演员作品、服务端播放列表、合集、分类和分类作品。预览中的文件夹项携带 typed playlist source config,可以继续进入演员、分类或播放列表内容。

播放开始、进度、暂停和停止会回写上游。SyncTV 会根据客户端播放能力请求 Emby/Jellyfin playback info,并同时暴露可用的直连和转码 mode。播放协商会话按房间隔离;停止、租约回收和服务关闭都会终止该房间的 active encoding。

Alist 支持目录、搜索、缩略图、字幕、原始流和上游转码。目录密码作为来源配置的一部分保存,账号密码保存在加密凭据中。

Cloudreve 支持目录、搜索、签名播放 URL 和缩略图。服务器返回 page 分页时 App 使用页码;服务器返回 cursor 时动态播放列表使用 opaque cursor。响应中的分页 oneof 是当前服务器分页方式的事实来源。

FNOS 登录支持主端点、可选 WebDAV/影视端点、2FA 和信任设备。登录发现结果会标记影视服务能力。

App 提供 文件影视库 两套入口。文件入口使用文件级缩略图和下载/Range;影视入口使用影视海报、媒体元数据、收藏、历史、已看状态、播放进度和原生转码。创建来源时会分别保存 FileLibraryItem typed source。原生转码会话在规格切换、播放停止、租约回收和服务关闭时发送 media.quit,瞬时失败由后台回收器继续重试。

QNAP 使用 File Station API 浏览和搜索。能力探测会返回设备声明的实时转码、硬件转码、QTranscode、Multimedia Codec 和 HD Station 支持,这些字段用于绑定诊断。播放模式提供原始文件和已经完成的预转码文件;文件项会列出可用的预转码高度。

Synology 登录支持 OTP。File Station 用于普通文件;Video Station 用于电影、电视剧、分集、家庭视频和电视录像。Video Station 条目携带海报、音轨、字幕和可播放文件标识,播放进度会回写 DSM。SyncTV 会跟踪 Video Station 返回的 stream_id,并在播放停止、租约回收和服务关闭时调用 DSM close

推荐使用应用密码或官方 Login Flow。目录项会保留 file ID、ETag、MIME、所有者、收藏、Preview 能力、BlurHash、尺寸和时长。App 的封面使用 Nextcloud Preview API,经 SyncTV 签名路由访问。

登录后先选择资料库。加密资料库会提示输入资料库密码并执行 unlock。动态来源支持目录、星标和资料库内搜索;文件条目保留 object ID 和 thumbnail 能力。

使用 API key 登录。浏览范围限制在存储挂载点 /mnt 下。目录和搜索结果会保留真实路径、mount ID、权限、ACL、扩展属性和 ZFS 属性。

动态列表响应使用明确的分页 oneof:

  • page 适合可按页码随机访问的上游。
  • cursor 适合 Cloudreve、Bilibili 历史、Twitch、YouTube 等上游原生 continuation。

App 在响应声明 page 时发送下一页页码,在响应声明 cursor 时回传 next_cursor。Cursor 是 opaque value,客户端只负责保存和回传。

顺序自动播放会继续扫描后续页,直到找到当前 target 和下一条可播放媒体。随机播放使用受控采样上限,避免对大型目录产生无限请求。

每条凭据同时绑定用户、Provider、server ID 和 Provider instance。同一个上游主机可以在多个 instance 中分别绑定。删除绑定前,应先迁移引用该绑定的媒体和动态播放列表。

  1. 确认 App 选择的 Provider instance 与绑定记录一致。
  2. 在平台绑定页刷新账号状态和 scopes/capabilities。
  3. 重新执行预览,确认错误发生在列表、解析、播放信息或 proxy 请求阶段。
  4. 检查 source config 中的 server ID、资源 ID、分页方式和共享凭据选项。
  5. 对直连失败的带 header、DASH 或 HLS 来源选择 proxy_* mode。
  6. 查看 Provider 配置播放与代理用户排障