Ваш код слишком сложен для этого базового задания ...
pgrep -u $USER "$tbnServlet" >/dev/null && echo "Started servlet: $tbnServlet" || echo "Failed to start servlet: $tbnServlet"
Предложение Рабина хорошее, мне почему-то не хватало этой функциональности в 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
- параметр языка.
VLC поставляется с (встроенным?) Плагином под названием VLsub
, которые позволяют искать подзаголовок на основе его HASH или просто его имени. (Он был интегрирован в VLC 2.2, но время от времени требует обновления здесь .)
Для его установки необходимая папка - ~ / .local / share / vlc / lua / extension /
для текущего пользователя и / usr / lib / vlc / lua / extensions /
для всех пользователей.
Поиск по хэшу
очень точен, но он требует хеширования видеофайла, что может быть затруднено при передаче файла по сети. Поиск по имени
работает намного быстрее, но менее точен. --write-sub Write subtitle file
--write-auto-sub Write automatic subtitle file (YouTube only)
--all-subs Download all the available subtitles of the video
--list-subs List all available subtitles for the video
--sub-format FORMAT Subtitle format, accepts formats preference, for example: "srt" or "ass/srt/best"
--sub-lang LANGS Languages of the subtitles to download (optional) separated by commas, use IETF language tags like 'en,pt'
Так, например, чтобы перечислить все подпрограммы для видео:
youtube-dl --list-subs [link video]
Чтобы загрузить все подписки, но не видео:
youtube-dl --all-subs --skip-download [link video]
Я откорректирую свой ответ под этот вопрос в соответствии с потребностями вашего вопроса .
Существует два вида поиска по субтитрам:
HASH поиск: точное совпадение, меньше совпадений; шансы найти субтитры меньше (по моему опыту 50% или ниже), но шансы на то, что найденные субтитры будут хорошими, очень высоки (возможно, 100%)
поиск по имени : больше шансов найти субтитры для видео (возможно, 90%), меньше шансов, что все найденные хорошие, но отличные шансы, что одно из них хорошее.
Но сами приложения используют поиск только по HASH или поиск по HASH и именам . Поскольку последний сначала пытается выполнить точный поиск HASH, а затем выполняет поиск по имени, я бы предпочел последний.
Но между этими инструментами есть и другие различия, а именно: погодные субтитры автоматически загружаются (без вашего вмешательства) или просто отображаются в списке.Обратите внимание, что полностью автоматическая загрузка идеальна только тогда, когда вам нужны субтитры только для одного языка и когда поиск по хэшу завершается успешно. Необходимость выбора в списке может быть преимуществом, когда поиск и находка ведутся только по имени.
Судя по вашему собственному ответу, я вижу, что вы остановились на подсознательном
, что далеко от того, что вы задаете в вопросе (инструмент, который действует близко к тому, что делает BSPlayer), поэтому сначала я предложу несколько решений которые менее похожи на BSPlayer и больше похожи на subliminal
.
Есть несколько удобных решений для добавления поиска субтитров (как по HASH, так и по имени) в контекстное меню файлового менеджера . Первая - это программа командной строки, которая работает очень похоже на подсознательный
, вторая - сценарий.
очень мощная, но, возможно, несколько громоздкая в использовании, так как поставляется с большой программой с графическим интерфейсом пользователя и также требует java (которая также имеет большие размеры).
Общая команда: filebot -get-subtitles / path / to / video /
.
Для поиска также по имени (рядом с хешем) следует использовать параметр -non-strict
.
Для загрузки субтитров на английском языке выбор языка не требуется, но для других языков есть вариант - lang
с двух- или трехбуквенным кодом языка , но только один язык может должны быть указаны для каждой команды, поэтому вам придется использовать отдельные команды для каждого языка.
Чтобы переименовать файлы мультимедиа (используя TMDb) и сопоставить их имена, полезной опцией является -rename
.
Команду можно добавить в контекстное меню в пользовательских действиях Thunar (или действиях Nautilus и т. Д.), Запустив ее в терминале; для французского должно быть:
gnome-terminal -e "filebot -get-subtitles --lang fr -rename -non-strict %f"
Мне особенно нравится возможность загружать субтитры для нескольких видео одновременно ; для этого вы должны поместить их в папку, выбрать папку, а затем опцию контекстного меню (для этого вам нужно добавить каталог в условия действия в инструменте конфигурации Thunar или Nautilus), и он загрузит подпрограммы для все включенные видео. - Таким образом (если включена опция -rename
) он может одновременно исправить и сопоставить имена нескольких видео и файлов.
Вам не нужно и нельзя выбирать между субтитрами, но каким-то образом можно выбрать лучшие субтитры, даже если они были найдены после поиска по имени.
OpenSubtitlesDownload.py - это еще один инструмент контекстного меню файлового менеджера, который выполняет поиск по хэшу и имени .
«Его можно использовать как сценарий nautilus или как обычное приложение, работающее в среде рабочего стола GNOME или KDE».
Для Nautilus:
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 выполняет поиск как по хешу, так и по имени ; он позволяет вам выбирать субтитры, но последние протестированные автоматически заменяют предыдущие.
SubDownloader и FileBot версии GUI - это программы, которые запускаются отдельно от любого проигрывателя и от файлового менеджера. Я думаю, они полезны, особенно при поиске субтитров для нескольких видео (хотя я использую для этого версию FileBot CLI, как указано выше), а также способ их отображения перед загрузкой всех. Я считаю этот тип приложений немного громоздким по сравнению с предыдущими. SubDownload ищет только по HASH.