支持读取本地目录媒体文件
本地已经有下载好的资源了,想用 Ani 播放看弹幕
這個確實好
这在实现上可能是非常复杂的,ani高度依赖bangumi条目数据匹配弹幕,所以播放本地文件也只能在一个剧集播放器页面进行。
在这种限制下,实现就比较简单一点。最简单的实现应该是,实现一个 DirectoryMediaSource,根据参数传入的绝对路径,去扫描文件,然后使用 ani 的标题解析器去自动解析文件名。
但解析这一步也很复杂。ani 最早有一个 PatternBasedTitleParser(简称PB),目前主要使用 LabelFirstTitleParser(简称L1)。L1 能以非常高(通过3000+单元测试)的准确性解析出剧集和字幕信息,但是不能解析标题;PB 能解析标题,但是剧集正确性很差。为了正确匹配本地文件,只能使用 PB。PB 解析标题的正确性也不佳,尤其是遇到按空格分隔的文件名的时候。还要考虑别名的情况。
综合下来,可以考虑先通过字符串查找,用 bangumi 条目给的名称过滤一遍,再使用 L1 解析剧集。
另一种方式是,在选择数据源的时候增加一个选择本地文件的功能。弹出系统选文件对话框。但是这样会需要改复杂的 media selector 及其配套设施,估计也不简单。
其实抛开弹幕,ani加上import本地文件的功能本身就可以充当一个很好的本地番剧资源+进度管理器了,这种情况下哪怕没有自动识别一个一个去加目录我也是愿意的(
支持,非常需要这个特性
考虑一下 https://github.com/Vorror/anitomyJ 这个库呢,jellyfin的bangumi插件用的是这个库的c#移植版
不过在jellyfin上的使用体验表明
- 如果是单集放在同一个文件夹则匹配效率最高
- bd合集/带正片以外的合集扫出来一团乱(vcb等)
- 更别提 s1+s2+ova/剧场版 这种情况的合集了,简直就是灾难
@chisaato 感谢提供这个库
Ani 内置自己的解析器 (名为 L1), 支持 s1+s2+剧场版 等复杂剧集情况, 覆盖一万个 test case, 处理了动漫花园最近几个月的所有标题. 解析剧集是极其准的.
但是 L1 只支持剧集, 还需搭配 Ani 内置的旧版的一个旧版解析器, 即可获取标题. 但是标题除了上机器学习和数据库穷举 (都需要服务端工作和成本) 以外, 是不好保证正确率的.
如果要做支持播放本地, 也会先做成进入播放页后拖拽视频播放, 而没有本地视频归类功能.
@chisaato 感谢提供这个库
Ani 内置自己的解析器 (名为 L1), 支持
s1+s2+剧场版等复杂剧集情况, 覆盖一万个 test case, 处理了动漫花园最近几个月的所有标题. 解析剧集是极其准的.但是 L1 只支持剧集, 还需搭配 Ani 内置的旧版的一个旧版解析器, 即可获取标题. 但是标题除了上机器学习和数据库穷举 (都需要服务端工作和成本) 以外, 是不好保证正确率的.
如果要做支持播放本地, 也会先做成进入播放页后拖拽视频播放, 而没有本地视频归类功能.
做成进入单集播放页面拖拽或选择本地视频播放也是可以的。 其实也可以做成拖拽文件夹,对文件夹中的视频按照名称进行排序,播放的第一个视频对应本集,下一个视频就自动匹配下集的弹幕。 这样实现起来相对会简单很多
如果能在选择数据源界面添加一个选择本地视频文件选项就好了