Software-Rec

自動下載字幕

  • December 3, 2017

有一個適用於 Windows 的媒體播放器 BSPlayer,它可以自動下載字幕。

關於它的好處是,它總能神奇地選擇正確的,與手動下載相反,手動下載最終會得到未正確同步的字幕。我不知道它是如何做到的以及它使用電影文件中的哪些資訊。它肯定會檢查多個字幕網站。

Linux 世界中是否有任何東西可以模擬此功能?

Rabin 的建議很好,我不知何故錯過了 VLC 具有此功能。可悲的是,由於這個錯誤,我對 VLC 有嚴重的問題。

我找到了一個獨立於您使用的播放器的解決方案(我使用 mplayer)。

誠然,我什至不使用 Linux,而是使用 FreeBSD。;-)

這是我的做法:

安裝 Python 3:

pkg install python3

您將需要 pip,它與 python 3.4+ 一起提供,早期版本請參見此處

在 FreeBSD 中(我認為這對於 Linux 可以跳過??)你還必須這樣做:

python3.4 -m ensurepip

然後安裝 python 程序subliminal。以root身份執行

pip install subliminal

要自動下載英文字幕,您可以:

subliminal download -l en The.Big.Bang.Theory.S05E18.HDTV.x264-LOL.mp4

-l語言選項在哪裡。

我會根據您的問題的需要調整我在這個問題下的答案。

有兩種字幕搜尋:

  • HASH搜尋:完全匹配,點擊更少;找到字幕的機會較小(以我的經驗為 50% 或更低),但找到好的字幕的機會非常高(可能 100%)
  • 名稱搜尋:找到影片字幕的機會更大(可能 90%),找到所有字幕的機會較少,但其中一個很好的機會很大。

應用程序本身要麼使用 HASH-only 搜尋,要麼使用 HASH 和名稱搜尋。由於後者首先嘗試精確的 HASH 搜尋,然後進行名稱搜尋,所以我傾向於後者。

但是這些工具之間還有其他區別,即天氣字幕會自動下載(無需您的任何干預)或僅列出。請注意,僅當您只需要一種語言的字幕並且雜湊搜尋成功時,全自動下載才是理想的。當搜尋和發現僅按名稱時,必須在列表中進行選擇可能是一個優勢。


從您自己的回答中,我看到您已經解決了subliminal,這與您在問題中提出的問題相去甚遠(一種與 BSPlayer 的功能密切相關的工具),因此我將首先建議一些與 BSPlayer 不太相似的解決方案,並且更多類似於subliminal

有一些方便的解決方案可以將字幕搜尋(通過 HASH 和名稱)添加到文件管理器的上下文菜單中。第一個是一個命令行程序,其工作方式與 非常相似subliminal,第二個是腳本。

FileBot命令行版本

非常強大,但安裝起來可能有點麻煩,因為它是一個大型 GUI 程序,它還需要 java(它也很大)。

一般命令是filebot -get-subtitles /path/to/video/.

要按名稱(除了雜湊)搜尋,也-non-strict應該使用該選項。

下載英文字幕不需要語言選項,但對於其他語言,有--lang2 或 3 個字母語言程式碼的選項,但每個命令只能指定一種語言,因此您必須為每種語言使用單獨的命令。

要重命名媒體文件(使用 TMDb)並匹配它們的名稱,一個有用的選項是-rename.

該命令可以通過在終端中執行來添加到 Thunar 的自定義操作(或 Nautilus 操作等)的上下文菜單中;對於法語,它應該是:

gnome-terminal -e "filebot -get-subtitles  --lang fr -rename -non-strict %f"

在此處輸入圖像描述

在此處輸入圖像描述

我特別喜歡一次下載多個影片的字幕的能力;為此,您必須將它們放在文件夾中,選擇文件夾,然後選擇上下文菜單選項(為此,您需要將目錄添加到 Thunar 或 Nautilus 配置工具中的操作條件),它會下載所有包含的影片。- 通過這種方式(如果-rename包含該選項),它可以同時更正和匹配多個影片和文件的名稱。

您不需要也無法在字幕之間進行選擇,但它能夠以某種方式選擇最佳字幕,即使在名稱搜尋後找到它們也是如此。


OpenSubtitlesDownload.py

OpenSubtitlesDownload.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"

我注意到的唯一缺點是,它在為系列尋找字幕方面似乎不如為故事片尋找字幕有效。


如果您想要的是與Windows 中的 BSPlayer(以及MPC-HC )完全相似的東西:

播放器

有這個選項,如此處所示

在此處輸入圖像描述

SMPlayer 預設只檢查雜湊,與其他工具相比,您可能會獲得更少的點擊,但這可以在設置中更改(字幕-在…-選項中查找字幕)

在此處輸入圖像描述

VLC

已經在另一個答案中提到過。您在回答中提到了一個錯誤;但即使這不固定(我懷疑)下載字幕工具(VLSub)不受影響。您可以在 VLC 中開始電影,下載 subs,然後在 mpv 中播放。只有您必須使 VLSub 保持最新。

VLC 通過 hash 和 name 搜尋;它允許您選擇字幕,但最新測試的會自動替換前一個。


SubDownloaderFileBot GUI 版本是獨立於任何播放器和文件管理器執行的程序。我認為它們很有用,尤其是在搜尋多個影片的字幕時(儘管我使用上面的 FileBot CLI 版本),也是一種在全部下載之前顯示它們的方法。與以前的應用程序相比,我發現這種類型的應用程序有點麻煩。SubDownload 僅按 HASH 搜尋。

引用自:https://unix.stackexchange.com/questions/331279