三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

在NAS与树莓派上部署OpenSubtitlesDownload:无头环境自动下载字幕完整攻略

在NAS与树莓派上部署OpenSubtitlesDownload:无头环境自动下载字幕完整攻略

在NAS与树莓派上部署OpenSubtitlesDownload:无头环境自动下载字幕完整攻略

【免费下载链接】OpenSubtitlesDownloadAutomatically find and download the right subtitles for your favorite videos!项目地址: https://gitcode.com/gh_mirrors/op/OpenSubtitlesDownload

在 NAS 与树莓派这类无头设备上,自动下载字幕一直是影音玩家的痛点。OpenSubtitlesDownload 是一款用 Python 编写的开源自动下载字幕工具,无需图形界面即可运行,通过计算视频文件哈希精准匹配字幕,帮你彻底告别手动找字幕的烦恼。本文带来一份面向新手、可直接照做的无头环境部署完整攻略,从安装到定时任务一次讲透。

为什么要在NAS与树莓派上自动下载字幕?

很多人的影视库都存放在 NAS 或树莓派上,通过 DLNA、Jellyfin、Plex 等方案串流观看。这类设备通常没有显示器,手动把字幕文件传到视频目录非常繁琐:

  • 🎬 影片数量多,逐个搜索字幕效率极低
  • 🔍 从网上下载的字幕经常与视频不同步,体验很差
  • ⏰ 新片入库后,希望字幕能自动补齐

OpenSubtitlesDownload 正好解决这些问题:它以纯命令行方式工作,在无头环境(无显示器、无桌面)下也能稳定运行,是 NAS 与树莓派上自动下载字幕的理想选择。

OpenSubtitlesDownload是什么?自动下载字幕的核心原理

OpenSubtitlesDownload 的核心能力是通过「视频指纹」来保证字幕精准匹配:

  • 哈希匹配:计算视频文件的唯一哈希值,向 opensubtitles.com 查询完全对应的字幕,从根源上避免音画不同步
  • 文件名兜底:哈希匹配失败时,自动回退到文件名搜索(结果可能不够精准,但总比没有强)
  • 多语言支持:可同时搜索 60 多种语言的字幕,一次搞定中英双语
  • 批量处理:支持同时传入多个视频文件甚至整个文件夹
  • 自动命名:下载后的字幕自动重命名为与视频同名,播放器开箱即用

整个项目核心只有一个主脚本 OpenSubtitlesDownload.py,搭配桌面集成文件(desktop-files/目录)与 GPL v3 开源许可(LICENSE.md),结构非常轻量。

部署前的准备工作清单

在 NAS 与树莓派上动手之前,请先确认以下三项:

准备项说明是否必需
opensubtitles.com 账号注册免费账号即可,用于调用字幕搜索与下载接口✅ 必需
Python 3.6+脚本运行环境,绝大多数 NAS 与树莓派系统自带✅ 必需
网络连通需能访问 opensubtitles.com 的 API 服务✅ 必需

⚠️ 注意:脚本需要的是 opensubtitles.com 的新账号,旧版 opensubtitles.org 账号需先在官网完成迁移。

一键安装步骤:在NAS与树莓派上获取OpenSubtitlesDownload

首先通过 SSH 登录你的 NAS 或树莓派,然后执行以下命令获取脚本:

git clone https://gitcode.com/gh_mirrors/op/OpenSubtitlesDownload cd OpenSubtitlesDownload

验证 Python 环境与脚本可用性:

python3 --version python3 OpenSubtitlesDownload.py --cli

如果输出提示需要 opensubtitles.com 账号,说明脚本已正常运行,接下来只需完成账号配置。

最快配置方法:写入账号与字幕语言

无头环境下的配置有两种方式,推荐新手直接编辑脚本开头的配置区,只需修改三个变量:

配置变量作用示例
osd_username你的 opensubtitles.com 用户名'your_name'
osd_password你的账号密码'your_password'
opt_languages默认字幕语言(ISO 639-1 代码)'zh,en'

修改完成后,即可用一条命令自动下载字幕:

python3 OpenSubtitlesDownload.py --cli -a -l zh,en /volume1/video

这条命令会递归处理/volume1/video目录下的所有视频,自动选择最佳中文字幕并下载到视频旁边,全程无需人工干预。

命令行实战:无头环境自动下载字幕的常用参数

如果不想修改配置文件,也可以全部通过命令行参数传参,更适合脚本化调用:

参数作用说明
--cli强制命令行模式无头环境必备,避免 GUI 探测
-u / -p账号与密码覆盖配置文件中的账号
-l zh,en指定字幕语言支持逗号分隔多语言
-a自动选择最佳字幕无人值守自动下载的关键
-i跳过已有字幕已存在字幕时不重复下载
-o 目录自定义字幕输出目录默认输出到视频同目录
-x文件名附加语言代码生成 movie_zh.srt 格式
--noai忽略 AI/机翻字幕提升字幕质量
--nohi忽略听障( HI )字幕过滤带辅助说明的字幕
-s搜索模式hash / filename / hash_then_filename

💡 小提示:脚本的退出码对自动化非常友好——0表示成功且已下载字幕,1表示执行成功但未找到字幕,2表示运行失败。写定时任务时可以根据退出码做后续处理。

定时任务自动化:让NAS与树莓派每天自动下载字幕

无头环境部署的最大价值在于无人值守。通过系统自带的 cron,可以让 NAS 与树莓派在每天凌晨自动为整个影视库补齐字幕:

crontab -e

在打开的编辑器中添加一行:

0 3 * * * cd /opt/OpenSubtitlesDownload && python3 OpenSubtitlesDownload.py --cli -a -l zh,en /volume1/video >> /var/log/osd.log 2>&1

保存后即生效:每天凌晨 3 点自动扫描视频目录,下载缺失的中英文字幕,日志写入/var/log/osd.log方便排查。

进阶技巧:让自动下载字幕更省心

  • 多语言一次到位-l zh,en同时搜索中英字幕,配合-x参数生成movie_zh.srtmovie_en.srt,多语言播放无压力
  • 避免重复下载:配合-i参数,脚本检测到已有字幕时自动跳过,节省 API 调用额度
  • 统一字幕目录:用-o /volume1/subtitles把所有字幕集中存放,方便统一管理备份
  • 批量文件夹:直接传入多个路径,如python3 OpenSubtitlesDownload.py --cli -a /video1 /video2,一次处理多个目录
  • Windows 用户参考:桌面集成目录中的OpenSubtitlesDownload-dragdrop.bat展示了 Windows 下拖拽文件的 CLI 调用方式,思路同样适用于 Linux 无头环境

常见问题排查

  • 提示账号必填:确认已在 opensubtitles.com 注册,且osd_username填的是用户名而非邮箱
  • Python 版本过低:运行python3 --version,低于 3.6 请先升级
  • 字幕下载失败:检查设备能否访问 opensubtitles.com,部分 NAS 需在防火墙放行 HTTPS
  • 字幕无法写入:确认运行用户对视频目录有读写权限,无头设备常因权限不足导致失败
  • GUI 相关报错:始终使用--cli参数强制命令行模式即可规避

结语

OpenSubtitlesDownload 用极轻量的方式,让 NAS 与树莓派等无头设备也能实现全自动的字幕下载与匹配。从一次性安装、账号配置到 cron 定时任务,全程只需十几分钟。如果你也受够了手动找字幕的日子,不妨立刻在自己的设备上部署起来,享受影音库字幕自动补齐的省心体验。🚀

【免费下载链接】OpenSubtitlesDownloadAutomatically find and download the right subtitles for your favorite videos!项目地址: https://gitcode.com/gh_mirrors/op/OpenSubtitlesDownload

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

← 返回列表