MeiamSubtitles
MeiamSubtitles copied to clipboard
想咨询下,如果 CSF 能够提供内网的 Http API 接口,需要怎么对接?
你好, 我是 ChineseSubFinder 的作者。之前看到你做这个项目的时候就很感兴趣,因为对于字幕搜索来说,有个极限就是,有些时候在一个视频下面可能只能够保存一个字幕。那么如果这个字幕错误的时候就得想办法重新触发下载逻辑,这个在我的程序中没有很好的办法。除了 Emby 因为支持自定义的字幕命名,所以效果还行。但是,依然不是最佳的。
前几个版本把 Http API 做出来了,对外的 http api,以及示例
那么现在想要找几个媒体服务器字幕搜索插件的作者合作,我可以提供更好和更全的字幕源搜索,然后“最后一公里”应该是这些媒体服务器字幕插件的优势,而且很重要。
所以想要咨询一下,是否有兴趣合作开发,以提高字幕搜索的体验和自动化程度。因为我不清楚应该给到怎么用的 http api,所以需要你来提出需求,我来配合实现。
如果文字的描述不恰当有所冒犯,那么的在此道歉。期待你的回复。
Emby 支持自定义字幕命名举例
目前这个插件。主要通过一些具有 HASH 匹配功能的字幕网站实现,根据剧集名不一定能够够精准的匹配当前片源适配的字幕。但是确实目前这样的字幕下载接口不多,而且迅雷也有一定限制,并且不是所有的片源都能够匹配到字幕。 您说的提供内网的 Http API 接口 , 这里我没太理解。 用户使用 Emby 时候是需要通过 token 进行验证下载么? 还是?
看了一下你目前提供的 Api , 应该是针对你的应用进行开发的接口吧。
如果做 Emby 的插件 , 只需要1个接口就可以了, 首选是字幕查询的接口,可以根据文件 Hash 、 片名 、 IMDB 编号、字幕语言 等信息查询,此接口会返回该剧集所有匹配的字幕,语言信息,匹配程度,以及 字幕文件下载的地址。
我看到,你的 Api 当中存在延迟下载这种情况,也就是当没有匹配的字幕,你后端会自动检索查找。后续进行下载?
目前提供的 HTTP API 仅仅是支持提交任务过来,然后 CSF 自动去下载字幕。无法保证实时性。 有一些细节可以跟你先描述一下:
- 文件的 hash 计算需要用到 CSF 的 HASH 计算方式,见 计算视频文件唯一ID。支持计算蓝光电影的唯一ID,需要伪造一个不存在的 mp4 文件来提交,内部会自动解析判断。见下图。非必须,只要 Emby 的路径能够与 CSF 的视频路径进行转换,CSF 拿到视频的绝对路径也可以自行计算,比如之前提到的 http 接口就是这样的。如果 Emby 的插件能够计算唯一ID,来提交查询,则无需考虑字幕路径转换的问题。
- 一个视频提交给 CSF ,完整的查询耗时,大概在 5-6min(全功能版本),如果是 Lite 版本(不支持 zimuku、subhd),可能会快一点。其实可以并发多个字幕源查询,但是因为会对别人服务器造成比较大的负担,所以现在强制顺序下载。
- 本程序现在是会把下载到的备选字幕清理掉,仅仅留了“合适”的字幕。可以改为把备选字幕都缓存下来。便于 emby 插件直接从本地获取这些字幕,然后由用户手动选择。
- http api 提交过来的视频,最好是相对于 CSF 程序的绝对视频路径、
那么想要咨询下,是否可以配合做到的功能:
- 由 Emby 插件触发一个视频的字幕下载,提交任务到 CSF,然后返回这个字幕搜索任务的 ID。
- 由 Emby 插件异步去查询 字幕搜索任务的 ID 是否完成(可以给出这个任务的进度百分比,但是不确定 Emby 能够展示这个等待效果),完成后,会在指定的目录(这个任务的 ID命名)下面提供所有备选的字幕共用户选择。
- 第二点提到的,其实也可以支持放到本程序的静态文件服务器中,直接 HTTP 本地局域网获取列表信息和下载字幕。
蓝光对应的伪造的 MP4 地址示例
我不知道我理解的对不对, CFS 是指的你的开源程序,提供内网的 Http API 接口 ,实际上意思是用户。可以使用你的开源程序 ,搭建自己的字幕服务器,然后 Emby 有一个插件,可以调用 CFS 程序提供的 API 下载字幕 , CFS 也可以直接接管视频所在的目录,具有读写操作的权限,对么?
针对你咨询的问题:
Emby 应该是无法实现异步的,也就是你说的先发送一个任务 ,后台等待返回后再下载。
Emby 流程大概是这样的,首先根据选择的影片信息,发送到 字幕服务器的查询接口 =》 字幕服务器返回匹配的字幕下载链接 (一部影片查询了多个字幕网站 ,每个网站可能返回了多个匹配的字幕)=》Emby 根据返回的信息展示到字幕列表 =》用户在列表中选择想要下载的某个字幕 =》 发送根据前面获取的下载地址,发送下载请求,下载字幕文件到硬盘存放目录
嗯,CSF 最好是能够读写媒体目录。字幕查询到结果的返回能够最长等待多久才超时呢?
一般来说 30 秒会提示超时,如果很久,应该考虑别的方案,毕竟等待过久会影响用户体验