Plex 拼音排序、拼音搜索及类型汉化脚本自动运行教程
之前通过「 Plex 拼音排序、拼音搜索及类型汉化脚本使用教程」为大家介绍了这个 Plex 中文本地化的脚本,但有些人好像没有 Get 到这个脚本到底是干嘛的,所以我再介绍一遍。
脚本功能
标签汉化
如上图所示,使用脚本前「电影 - 流派」标签中存在一些英文标签「Action、Adventure、Anime、Biography、Children」等,使用脚本后这些标签被汉化成了中文「动作、冒险、动画、传记、儿童」等。
拼音排序
使用脚本前选择「标题排序」时第一行的顺序为「K星异客、东京物语、东方快车谋杀案、为人民服务、乱世佳人、人工智能、何以为家、借东西的小人阿莉埃蒂、冒牌家庭」,拼音顺序为「K、D、D、W、L、R、H、J、M」,使用脚本后第一行的顺序为「沉睡的青春、窗台上的男人、穿越时空的少女、东方快车谋杀案、大红灯笼高高挂、东京物语、盗梦空间、蜂鸟计划、飞行员的妻子」,拼音顺序为「C、C、C、D、D、D、D、F、F」,使用脚本前标题排序是按照标题首字符的 Unicode 编码顺序排列的,所以拼音顺序是乱的,使用脚本后标题排序是按照拼音顺序排列的。
拼音索引
有些人可能没注意,当你选择「标题排序」时页面右侧会出现一行「索引字符」,使用脚本前这行索引字符会按照你的片名首字符显示,全都是中文,使用脚本后索引字符就变成了英文字母,并且这个索引规则是「片名首字拼音的首字母」顺序,也就是拼音顺序,这样使用拼音索引定位影片就方便多了。
拼音搜索
使用脚本前中文标题的内容必须使用中文进行搜索,使用脚本后可以使用标题的拼音缩写进行搜索,这样在电视端进行搜索就简单多了。
对于我们中文用户来说,这个脚本可以用来汉化标签,包括了「电影类型/流派、电视节目类型/流派、专辑类型/流派、艺术家类型/流派、单曲类型/情绪」,可以用来修改标题排序名称,就是将中文的「电影标题、电视节目标题、视频标题、艺术家姓名、专辑标题」的标题排序名称修改为标题的拼音首字母缩写,可以用于拼音排序和拼音搜索。
在我上次发布教程之后作者对脚本进行了优化,一是简化了操作流程,现在只有第一次使用需要输入服务器的信息,之后都是可以直接进行操作的,二是修改后的标签和内容会被自动锁定,这样即使重新刷新元数据也不会影响已经修改过的内容。
基本的操作逻辑和我之前写的教程没什么变化,我就不重新讲操作步骤了,这次主要讲解一下如何自动运行这个脚本,这边提供三种方案。无论选择哪种方案,都请先参考「 Plex 拼音排序、拼音搜索及类型汉化脚本使用教程」手动运行一遍脚本,这样会自动保存你的服务器信息,方便后续的操作。
脚本演示
双击自动运行
由于脚本每次只能对一个资料库的一种内容进行处理,所以我们需要为每个资料库分别写一个自动运行的脚本,脚本内容就是自动输入命令并且选择相应的选项对指定的资料库进行处理。
下面我以「电视剧」资料库为例,讲解如何为「电视剧」资料库写一个自动运行的脚本。
1.1. 右击 plex_localization_zhcn.py 脚本所在文件夹选择「服务 - 新建位于文件夹位置的终端窗口」。
1.2. 输入「touch 电视剧.command」按回车,此时文件夹内会新增一个「电视剧.command」文件。
1.3. 输入「chmod 777 电视剧.command」按回车。
1.4. 右击「电视剧.command」文件选择「打开方式 - 文本编辑」,输入下面的代码,请将「/Applications/Plex\ Localization」替换为你的 plex_localization_zhcn.py 脚本所在文件夹的路径,请将「3」替换为你的「电视剧资料库序号」,请将「2」替换为你的「节目类型序号」,然后保存并关闭文件。
#!/bin/bash
cd /Applications/Plex\ Localization
python3 plex_localization_zhcn.py <<eof
3
2
eof
请参考你自己手动运行脚本时显示的资料库序号和类型序号进行设置,为指定的资料库选择正确的类型,序号在资料库数量发生变化时会产生变动,比如你新建了一个资料库,原来的资料库序号就有可能发生变化,你就需要去修改资料库内的序号,请确保脚本内的序号与手动运行脚本时的序号一致。
其他资料库只要复制「电视剧.command」这个文件,修改文件名,并把倒数第 2、3 行的数字改为其他资料库的序号,保存即可,下图为示例。
现在直接双击这些脚本就会自动对资料库进行处理,如果希望处理完毕后自动退出终端,可以在脚本末尾增加下面这行命令,这样脚本运行完毕后就会自动退出终端应用。
osascript -e 'tell application "Terminal" to quit' &
开机自动运行
你也可以把这些脚本设置为开机启动项目,这样每次开机后都会自动更新资料库。只要保证你运行脚本的设备和服务器处于同一网络中,并且服务器处于运行状态即可。如果服务器是装在电脑上的,因为启动服务器还需要时间,电脑联网也需要时间,所以我们就需要对脚本做一点修改。
你可以复制一份脚本,重命名为「电视剧开机启动」(例),然后增加一行「sleep 5」命令,意思就是启动脚本后等待 5 秒再执行脚本,这样设置为开机启动项目后,就会有充足的时间启动 Plex 服务器和连接网络,可以保证脚本顺利运行。
#!/bin/bash
cd /Applications/Plex\ Localization
sleep 5
python3 plex_localization_zhcn.py <<eof
3
2
eof
然后请参考「 macOS 如何设置 AList、RCLONE、xTeVe 开机启动后台运行」的「开机启动」部分,将脚本添加为系统登录项即可。这样开机后会自动运行脚本,运行完毕后会显示修改内容,如果希望运行完毕后关闭窗口并退出终端应用,可以在脚本末尾增加以下命令。
osascript -e 'tell application "Terminal" to quit' &
后台定时运行
如果你希望脚本能在后台自动运行,你也可以把脚本设置为 crontab 定时任务,这样脚本会在后台定时运行,自动更新资料库的数据。
如果你的电脑上安装了多个版本的 Python,可能会发生 crontab 调用错版本的问题,导致脚本运行失败,所以建议先确认自己终端运行的 Python 在什么位置,然后对脚本进行一些修改。
你可以在终端通过以下命令查找 Python 的位置,输入命令按回车后你会得到 Python 的目录。
whereis python3
whereis python
然后请打开你的自动运行脚本,将「python3 plex_localization_zhcn.py <<eof」中的「python3」替换为你获取的 Python 目录,如下,替换后请保存并运行脚本,测试是否能运行成功,最后选择可以正常运行的 Python 目录进行替换并保存。
#!/bin/bash
cd /Applications/Plex\ Localization
/usr/local/bin/python3 plex_localization_zhcn.py <<eof
3
2
eof
如果通过「whereis python」获取的 Python 目录都无法正常运行脚本,你还可以尝试在应用程序中打开「Python Launcher」,在「Interpreter」中打开下拉列表查看是否还有其他 Python 目录,并进行测试,最终选择一个可以正常运行脚本的目录修改脚本。
接下来就可以添加 crontab 定时任务了。
2.1. 请将输入法切换至英文,在终端窗口输入「crontab -e」按回车,按「i」进入编辑状态。
2.2. 请输入「0 * * * * /Applications/Plex\ Localization/电视剧.command > /dev/null 2>&1」,然后按「esc」返回键退出编辑状态(请把「/Applications/Plex\ Localization/电视剧.command」替换为你的「自动运行脚本路径」)。
2.3. 请输入「:wq」保存并退出编辑器,此时会弹出「“终端.app”想要管理您的电脑」窗口,选择「好」,然后关闭终端。
这样我们就为「电视剧」资料库添加了一个每小时的第 0 分钟自动运行一次 Plex 中文本地化脚本的定时任务。命令最前面的「* * * * *」是用来设定时间的,分别代表「分、时、日、月、周」,比如每 5 分钟一次是「*/5 * * * *」,每 3 小时的第 0 分钟一次是「0 */3 * * *」,每天晚上 8 点一次是「0 20 * * *」,每 2 天的晚上 8 点一次是「0 20 */2 * *」,每周二的晚上 8 点一次是「0 20 * * 2」,每月 15 日的晚上 8 点 30 分一次是「30 20 15 * *」。
如果有多个资料库需要添加定时任务,请在「2.2.」这个步骤为每个脚本都添加一行命令,若要修改命令重复「2.1.-2.3.」即可,删除内容即为删除定时任务,定时任务添加后会在后台全自动运行,无需任何干预。
大家可以根据自己的需要选择自动方案,如果媒体库更新频率较高,可以设置后台定时运行,运行频率可自行设置,如果媒体库更新频率不高可以使用双击自动运行,一键运行脚本,或者你也可以选择开机启动加双击自动运行,脚本命令请根据自己的情况修改后使用。
脚本中预置了一些标签的汉化翻译,右击「plex_localization_zhcn.py」选择「打开方式 - 文本编辑」可查看和编辑标签翻译,若想增加其他标签的汉化翻译,可按照脚本中的格式自行增加中英文对应关系,保存即可,音乐内容的相关标签脚本中没有预置,需要自己添加。