Windows 有一个媒体播放器 BSPlayer,可以自动下载字幕。
它的伟大之处在于,它总是神奇地选择正确的字幕,这与手动下载相反,手动下载可能会导致字幕未正确同步。我不知道它是如何做到的以及它使用电影文件中的哪些信息。它肯定会检查多个字幕网站。
Linux 世界里有什么东西可以模拟这个功能吗?
答案1
我将在下面调整我的答案这问题针对您的问题的需要。
字幕搜索有两种:
哈希搜索:精确匹配,点击次数少;找到字幕的机会较小(根据我的经验,50%或更低),但找到好的字幕的机会非常高(可能是100%)
姓名搜索:找到视频字幕的机会更大(可能是 90%),找到视频字幕的机会更少全部发现很好,但很有可能一其中很好。
但应用程序本身使用仅哈希搜索或哈希和名称搜索。由于后者首先尝试精确的 HASH 搜索,然后进行名称搜索,所以我更倾向于后者。
但这些工具之间还有其他区别,即天气字幕是自动下载的(无需您的任何干预)或只是列出。请注意,仅当您只需要一种语言的字幕并且哈希搜索成功时,全自动下载才是理想的选择。当仅通过名称进行搜索和发现时,必须在列表中进行选择可能是一个优势。
从你自己的回答来看,我发现你已经解决了subliminal
,这与你在问题中提出的问题相去甚远(一个与 BSPlayer 的作用密切相关的工具),所以我首先会建议一些与 BSPlayer 不太相似的解决方案,并且更如同subliminal
。
有一些舒服的将字幕搜索(通过哈希和名称)添加到文件管理器的上下文菜单的解决方案。第一个是命令行程序,其工作方式与 非常相似subliminal
,第二个是脚本。
文件机器人命令行版本
非常强大,但安装起来可能有点麻烦,因为它是一个大型 GUI 程序,而且还需要 java(也很大)。
一般命令是filebot -get-subtitles /path/to/video/
.
到还可以按名称搜索(除了哈希值)-non-strict
应该使用该选项。
要下载英文字幕,不需要语言选项,但对于其他语言,可以选择--lang
带有 2 或 3 个字母的选项语言代码,但每个命令只能指定一种语言,因此您必须为每种语言使用单独的命令。
要重命名媒体文件(使用 TMDb)并匹配它们的名称,一个有用的选项是-rename
.
通过在终端中运行该命令,可以将该命令添加到 Thunar 的自定义操作(或 Nautilus 操作等)的上下文菜单中;对于法语来说应该是:
gnome-terminal -e "filebot -get-subtitles --lang fr -rename -non-strict %f"
我特别喜欢它的能力一次下载多个视频的字幕;为此,您必须将它们放入一个文件夹中,选择该文件夹,然后选择上下文菜单选项(为此,您需要将目录添加到 Thunar 或 Nautilus 配置工具中的操作条件中),它会下载以下子文件所有包含的视频。 - 通过这种方式(如果-rename
包含该选项)它可以同时纠正和匹配多个视频和文件的名称。
您不需要也无法在字幕之间进行选择,但它能够以某种方式选择最好的字幕,即使在名称搜索后找到了它们。
打开字幕下载.py
打开字幕下载.py是另一个文件管理器上下文菜单工具,可以通过以下方式搜索哈希和名称。
“它可以用作 nautilus 脚本,也可以用作在 GNOME 或 KDE 桌面环境下工作的常规应用程序。”
对于鹦鹉螺:
git clone https://github.com/emericg/OpenSubtitlesDownload.git
mkdir -p ~/.local/share/nautilus/scripts/
cp OpenSubtitlesDownload/OpenSubtitlesDownload.py ~/.local/share/nautilus/scripts/OpenSubtitlesDownload.py
chmod u+x ~/.local/share/nautilus/scripts/OpenSubtitlesDownload.py
但该OpenSubtitlesDownload.py
脚本可以通过添加命令在其他文件管理器(Thunar 自定义操作、Nemo 操作、Pantheon-Files 合约文件)中使用
sh -c "/path/to/OpenSubtitlesDownload.py %f"
我注意到的唯一缺点是,它在寻找连续剧字幕方面似乎不如寻找故事片字幕有效。
如果你想要的是与 BSPlayer 完全相似的东西(并且MPC-HC就此而言)在 Windows 中:
多媒体播放器
有这个选项,如图所示这里。
默认情况下,SMPlayer 仅检查哈希,这样您获得的点击次数可能比其他工具少,但这可以在设置中更改(字幕 - 在...查找字幕 - 选项):
可见光通信
在另一个答案中已经提到过。您在回答中提到了一个错误;但即使没有修复(我对此表示怀疑),下载字幕工具(VLSub)也不受影响。您可以在 VLC 中播放电影,下载字幕,然后在 mpv 中播放。只是您必须保持 VLSub 是最新的。
VLC 按哈希值和名称进行搜索;它允许您选择字幕,但最新测试的字幕会自动替换前一个。
子下载器和文件机器人GUI 版本是与任何播放器和文件管理器分开运行的程序。我认为它们很有用,特别是在搜索多个视频的字幕时(尽管我使用上面的 FileBot CLI 版本),也是一种在下载所有视频之前显示它们的方法。我发现这种类型的应用程序与以前的应用程序相比有点麻烦。 SubDownload 仅通过 HASH 搜索。
答案2
Rabin 的建议很好,我不知何故错过了 VLC 有这个功能。遗憾的是,我在使用 VLC 时遇到了严重的问题,因为这漏洞。
我找到了一个独立于您使用的播放器的解决方案(我使用 mplayer)。
诚然,我什至不使用 Linux,而是使用 FreeBSD。 ;-)
我是这样做的:
安装Python 3:
pkg install python3
您需要 pip,它附带 python 3.4+,有关早期版本,请参阅这里。
在 FreeBSD 中(我认为 Linux 可以跳过这个??)你还必须这样做:
python3.4 -m ensurepip
然后你安装python程序潜意识的。以 root 身份执行
pip install subliminal
要自动下载英文字幕,您可以执行以下操作:
subliminal download -l en The.Big.Bang.Theory.S05E18.HDTV.x264-LOL.mp4
-l
语言选项在哪里。
答案3
VLC 附带一个名为(内置?)的插件VLsub
,允许您根据 HASH 或仅搜索字幕名称来搜索字幕。 (它已集成在 VLC 2.2 中,但需要不时更新这里.)
要安装它,所需的文件夹适用~/.local/share/vlc/lua/extensions/
于当前用户和/usr/lib/vlc/lua/extensions/
所有用户。
- 该
Search by Hash
选项非常准确,但它需要对视频文件进行哈希处理,当/如果您通过网络传输文件时,这可能会很困难。 - 该
Search by Name
选项速度更快,但准确性较差。
答案4
您可以使用这个开源项目执行完全相同的操作https://github.com/atulgpt/SubtitleDownloader.git 它还支持批处理模式、递归文件夹搜索和两个不同的数据库。为了获得更好的结果,它使用视频文件的哈希值。如果发现有用,请给该项目一颗星,并为这个答案投票:)