自动下载字幕

自动下载字幕

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选项速度更快,但准确性较差。

VLC VLsub 窗口

答案4

您可以使用这个开源项目执行完全相同的操作https://github.com/atulgpt/SubtitleDownloader.git 它还支持批处理模式、递归文件夹搜索和两个不同的数据库。为了获得更好的结果,它使用视频文件的哈希值。如果发现有用,请给该项目一颗星,并为这个答案投票:)

相关内容