前几天不是把家里的小霸王给改造成了NAS嘛,然后本来就是想架个EMBY然后在家里直接就看番了的,找了一圈发现BT下载是比较好用的,结果下载下来文件名格式又不一样,不符合EMBY的解析要求,于是就有了这篇文章
找种子
我推荐用蜜柑计划 - Mikan Project (mikanani.me)
虽然有时候上不去,但是资源是全的,速度也很不错,可以试试
配置下载
我一开始用的qbitorrent(群晖套件版的),但是那个配置起来超级麻烦,而且发现RSS订阅后不会自动下载(不知道是我的问题还是啥)
然后我记得群晖里有一个自带的Download Station,启动后发现其实它是支持BT下载的
我们找到Download Station,然后打开RSS,在里面添加我们的RSS链接
我这里选的是那种分集用[]
给括起来的字幕组(好正则匹配,后面会说为什么要re匹配),直接加进去就行了
然后在下面下载过滤器新建一个过滤器,根据自己的需要填写过滤规则
设置完后,记得在RSS Feeds里面,把之前已经发出来的剧集先根据自己的需要下载好
自动重命名
因为EMBY需要AnimeName SxxExx
这样的命名格式,但是字幕组发布的资源命名通常都是乱的,所以我们需要配置一个自动重命名
我先写好了一个Python程序,放在/volume1/Storage/AutoRename/AutoRename.py
里面(路径可以自己进SSH去找),内容如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| import os import sys import re import time import shutil
workdir = '/volume1/Animes'
ignoredir = [ '@eaDir', '#recycle' ]
logdir = '/volume1/Storage/log/synoscheduler/3'
logpreserve = 604800
os.chdir(workdir)
def RemoveIgnoreDirs(src: list, ignores: list) -> None: for ignore in ignores: try: src.remove(ignore) except Exception: pass
def RemovePreviousLog(src: list, logpreserve: int) -> None: toRemove = False loglist = os.listdir(src) now = int(time.time()) for log in loglist: try: logtime = int(log) except Exception as e: print(f'{e} when removing {logdir}/{log}') continue if now - logtime > logpreserve: toRemove = True shutil.rmtree(f'{logdir}/{log}') print(f'Removed {logdir}/{log}') if not toRemove: print('Nothing to remove.')
if __name__ == '__main__': print(f'{" Renameing Animes ":=^60}') animes = os.listdir() RemoveIgnoreDirs(animes, ignoredir) for anime in animes: seasons = os.listdir(f'./{anime}') RemoveIgnoreDirs(seasons, ignoredir) for season in seasons: episodes = os.listdir(f'./{anime}/{season}') RemoveIgnoreDirs(episodes, ignoredir) for episode in episodes: try: episode_num = str(re.search(r'\[[0-9][0-9](\.)?[0-9]?(v)?[0-9]?集?\]', episode).group()).replace('[', '').replace(']', '').replace('v2', '').replace('集', '') except AttributeError: print(f'No matching pattern on "{episode}"') continue filetype = episode.split('.')[-1] filename = f'{anime} {season}E{episode_num}.{filetype}' print(f'Renaming "{episode}" -> {filename}') os.rename(f'./{anime}/{season}/' + episode, f'./{anime}/{season}/' + filename) print(f'\n{" Removing old logs ":=^60}') RemovePreviousLog(logdir, logpreserve) print(f'\n{" Done ":=^60}\n')
|
这就是为什么选择字幕组的时候我选了分集号用中括号[]
括起来的原因
接着我们打开群晖的控制面板,找到任务计划,新建一个任务
点击新增
-> 用户定义的脚本
根据自己的需要创建即可,一开始在任务名称里面会写Task x
,这个x
就是你的任务号,群晖的任务log会保存在<你指定的目录>/synoscheduler/<ID>
这样的位置,所以这个ID记得记下来然后把脚本里面的ID改掉
保存后群晖就会自动执行重命名任务了,当EMBY进行扫描的时候,扫描到命名正确的文件就会自动加入媒体库了
注:EMBY媒体库的结构举例(也是我这个脚本适合的目录结构)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| W:. ├─为美好的世界献上爆焰! │ └─S01 │ 为美好的世界献上爆焰! S01E01.mp4 │ 为美好的世界献上爆焰! S01E02.mp4 │ ├─勇者死了 │ └─S01 │ 勇者死了 S01E01.mp4 │ 勇者死了 S01E02.mp4 │ ├─总之就是非常可爱 │ └─S02 │ 总之就是非常可爱 S02E01.mp4 │ 总之就是非常可爱 S02E02.mp4 │ ├─我推的孩子 │ └─S01 │ 我推的孩子 S01E01.mp4 │ 我推的孩子 S01E02.mp4 │ ├─第二次被异世界召唤 │ └─S01 │ 第二次被异世界召唤 S01E01.mp4 │ 第二次被异世界召唤 S01E02.mp4 │ └─英雄联盟:双城之战 └─S01 英雄联盟:双城之战 S01E01.mp4 英雄联盟:双城之战 S01E02.mp4 英雄联盟:双城之战 S01E03.mp4 英雄联盟:双城之战 S01E04.mp4 英雄联盟:双城之战 S01E05.mp4 英雄联盟:双城之战 S01E06.mp4 英雄联盟:双城之战 S01E07.mp4 英雄联盟:双城之战 S01E08.mp4 英雄联盟:双城之战 S01E09.mp4
|