├── .github └── workflows │ ├── Auto Build Docker Image.yml │ ├── Manual Build Docker Image.yml │ └── Update ReleaseTag.yml ├── Dockerfile ├── README.md ├── ReleaseTag └── root ├── etc ├── cont-init.d │ ├── 10-config │ └── 30-config └── services.d │ └── subfinder │ └── run └── subfinder └── subfinder.json /.github/workflows/Auto Build Docker Image.yml: -------------------------------------------------------------------------------- 1 | name: Auto Build Docker Image.yml 2 | 3 | on: 4 | workflow_dispatch: 5 | schedule: 6 | - cron: '30 21 * * 5' 7 | 8 | jobs: 9 | buildx: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - name: Checkout 13 | uses: actions/checkout@v2 14 | 15 | # Docker Image 构建环境 16 | - name: Set up QEMU 17 | uses: docker/setup-qemu-action@v1 18 | 19 | - name: Set up Docker Buildx 20 | uses: docker/setup-buildx-action@v1 21 | 22 | - name: Login to DockerHub 23 | uses: docker/login-action@v1 24 | with: 25 | username: ${{ secrets.DOCKER_USERNAME }} 26 | password: ${{ secrets.DOCKER_PASSWORD }} 27 | 28 | # 获得仓库中的ReleaseTag 29 | - name: Set Version 30 | id: set-version 31 | run: | 32 | echo "::set-output name=version::$(cat ReleaseTag | head -n1)" 33 | echo "ReleaseTag=$(cat ReleaseTag | head -n1)" 34 | 35 | # 缓存release tag,用作与下一次执行任务时获取到到release tag做对比 36 | - name: Cache tag 37 | id: cache-tag 38 | uses: actions/cache@v2 39 | with: 40 | path: ./tag/ 41 | key: ${{ runner.os }}-tag-v${{ steps.set-version.outputs.version }} 42 | 43 | # 获取将latest release tag,未命中缓存则更新ReleaseTag 44 | - name: Get latest release tag 45 | id: get-release-tag 46 | if: steps.cache-tag.outputs.cache-hit != 'true' 47 | run: | 48 | mkdir -p ./tag 49 | echo ${{ steps.set-version.outputs.version }} > ./tag/tag-${{ steps.set-version.outputs.version }} 50 | echo "::set-output name=status::success" 51 | 52 | # 构建docker images 分为tag版和latest版 53 | - name: Build dockerfile tag x86_64 54 | if: steps.get-release-tag.outputs.status == 'success' 55 | uses: docker/build-push-action@v2 56 | with: 57 | file: ./Dockerfile 58 | platforms: linux/amd64 59 | push: true 60 | tags: | 61 | superng6/subfinder:${{ steps.set-version.outputs.version }} 62 | superng6/subfinder:latest 63 | -------------------------------------------------------------------------------- /.github/workflows/Manual Build Docker Image.yml: -------------------------------------------------------------------------------- 1 | name: Manual Build Docker Image 2 | 3 | on: 4 | push: 5 | paths: 6 | - "ReleaseTag" 7 | workflow_dispatch: 8 | 9 | jobs: 10 | buildx: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - name: Checkout 14 | uses: actions/checkout@v2 15 | 16 | # Docker Image 构建环境 17 | - name: Set up QEMU 18 | uses: docker/setup-qemu-action@v1 19 | 20 | - name: Set up Docker Buildx 21 | uses: docker/setup-buildx-action@v1 22 | 23 | - name: Login to DockerHub 24 | uses: docker/login-action@v1 25 | with: 26 | username: ${{ secrets.DOCKER_USERNAME }} 27 | password: ${{ secrets.DOCKER_PASSWORD }} 28 | 29 | # 获得仓库中的ReleaseTag 30 | - name: Set Version 31 | id: set-version 32 | run: | 33 | echo "::set-output name=version::$(cat ReleaseTag | head -n1)" 34 | echo "ReleaseTag=$(cat ReleaseTag | head -n1)" 35 | echo "::set-output name=status::success" 36 | 37 | # 构建docker images 分为tag版和latest版 38 | - name: Build dockerfile tag x86_64 39 | if: steps.set-version.outputs.status == 'success' 40 | uses: docker/build-push-action@v2 41 | with: 42 | file: ./Dockerfile 43 | platforms: linux/amd64 44 | push: true 45 | tags: | 46 | superng6/subfinder:${{ steps.set-version.outputs.version }} 47 | superng6/subfinder:latest 48 | -------------------------------------------------------------------------------- /.github/workflows/Update ReleaseTag.yml: -------------------------------------------------------------------------------- 1 | name: Update ReleaseTag 2 | 3 | on: 4 | workflow_dispatch: 5 | schedule: 6 | - cron: '0 21 * * 5' 7 | 8 | jobs: 9 | update: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - name: Checkout codebase 13 | uses: actions/checkout@v2 14 | 15 | # 获取latest release tag,cut切割无关内容。和仓库中LocalReleaseTag对比,之后输出tag给之后的步骤 16 | - name: Set Version 17 | id: set-version 18 | run: | 19 | TAG=$(wget --no-check-certificate -qO- https://api.github.com/repos/ausaki/subfinder/tags | grep 'name' | cut -d\" -f4 | head -1 | cut -c 2- ) 20 | 21 | OnlineReleaseTag=${TAG} 22 | LocalReleaseTag=$(cat ReleaseTag | head -n1) 23 | 24 | echo "LocalReleaseTag=$(cat ReleaseTag | head -n1)" 25 | echo "OnlineReleaseTag=${TAG}" 26 | 27 | if [ "${LocalReleaseTag}" != "${OnlineReleaseTag}" ] 28 | then 29 | echo "::set-output name=version::${TAG}" 30 | echo "::set-output name=status::success" 31 | fi 32 | 33 | # 将latest release tag写入到./ReleaseTag 34 | - name: Update ReleaseTag 35 | if: steps.set-version.outputs.status == 'success' 36 | run: | 37 | echo ${{ steps.set-version.outputs.version }} > ./ReleaseTag 38 | 39 | # push到GitHub的项目当中 40 | - name: Push 41 | if: steps.set-version.outputs.status == 'success' 42 | run: | 43 | git config --local user.email "action@github.com" 44 | git config --local user.name "GitHub Action" 45 | git commit -am "Update ReleaseTag ${{ steps.set-version.outputs.version }}" 46 | git push -v --progress 47 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM lsiobase/alpine:3.12 as builder 2 | # set label 3 | LABEL maintainer="NG6" 4 | ARG S6_VER=2.1.0.2 5 | WORKDIR /downloads 6 | # download s6-overlay 7 | RUN if [ "$(uname -m)" = "x86_64" ];then s6_arch=amd64;elif [ "$(uname -m)" = "aarch64" ];then s6_arch=aarch64;elif [ "$(uname -m)" = "armv7l" ];then s6_arch=arm; fi \ 8 | && wget --no-check-certificate https://github.com/just-containers/s6-overlay/releases/download/v${S6_VER}/s6-overlay-${s6_arch}.tar.gz \ 9 | && mkdir ./s6-overlay \ 10 | && tar -xvzf s6-overlay-${s6_arch}.tar.gz -C ./s6-overlay 11 | 12 | FROM python:3.6-slim-buster 13 | # set label 14 | LABEL maintainer="NG6" 15 | ENV TZ=Asia/Shanghai TASK=1d PUID=1026 PGID=100 16 | # copy files 17 | COPY root/ / 18 | COPY --from=builder /downloads/s6-overlay/ / 19 | # install subfinder 20 | RUN apt -y update && apt -y install unrar-free \ 21 | && pip install subfinder \ 22 | && useradd -u 1000 -U -d /config -s /bin/false abc \ 23 | && usermod -G users abc \ 24 | && echo "**** cleanup ****" \ 25 | && apt-get clean \ 26 | && apt-get autoremove \ 27 | && rm -rf \ 28 | /tmp/* \ 29 | /var/lib/apt/lists/* \ 30 | /var/tmp/* 31 | 32 | # volumes 33 | VOLUME /config /media 34 | 35 | ENTRYPOINT [ "/init" ] 36 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![](https://img.shields.io/docker/pulls/superng6/subfinder) ![GitHub last commit](https://img.shields.io/github/last-commit/superng6/docker-subfinder) ![GitHub stars](https://img.shields.io/github/stars/superng6/docker-subfinder) ![GitHub forks](https://img.shields.io/github/forks/superng6/docker-subfinder) 2 | 3 | # Docker SubFinder 自动刮削字幕器 4 | 5 | ### 自动刮削媒体文件字幕,打开容器后开始遍历媒体文件,遍历结束后休眠,之后每天遍历一次 6 | 7 | Docker Hub:https://hub.docker.com/r/superng6/subfinder 8 | 9 | GitHub:https://www.github.com/SuperNG6/docker-subfinder 10 | 11 | 博客:https://sleele.com/2020/04/09/subfinder 12 | 13 | 14 | 本镜像根据:ausaki的 https://github.com/ausaki/subfinder 字幕查找器制作,自动同步更新最新版本 15 | 具体的参数请参照subfinder的readme进行修改 16 | 17 | 1、配置文件`subfinder.json`位于`/config/subfinder.json`,请根据的你情况自行修改 18 | 2、env里设置`TASK`时间即可 19 | `s 为秒,m 为 分钟,h 为小时,d 为日数`,默认`1d`执行一次任务,例`TASK=1d` 20 | 21 | 22 | ``` 23 | { 24 | "languages": ["zh", "en", "zh_chs"], 25 | "exts": ["ass", "srt"], 26 | "method": ["shooter", "zimuzu", "zimuku"], 27 | "video_exts": [".mp4", ".mkv", ".iso"], 28 | "exclude": ["excluded_path/", "*abc.mp4"], 29 | "api_urls": { 30 | // 设置字幕库的搜索 API 31 | "zimuku": "http://www.zimuku.la/search", 32 | // 设置字幕组的搜索 API 33 | "zimuzu": "http://www.zmz2019.com/search", 34 | // 设置字幕组获取字幕下载链接的 API, 注意不包含域名 35 | "zimuzu_api_subtitle_download": "/api/v1/static/subtitle/detail", 36 | // 设置 SubHD 的搜索 API 37 | "subhd": "https://subhd.tv/search", 38 | // 设置 SubHD 获取字幕下载链接的 API, 注意不包含域名 39 | "subhd_api_subtitle_download": "/ajax/down_ajax", 40 | // 设置 SubHD 获取字幕预览的 API, 注意不包含域名 41 | "subhd_api_subtitle_preview": "/ajax/file_ajax" 42 | } 43 | } 44 | ``` 45 | 46 | 47 | 48 | ## 使用说明 49 | 50 |
51 | 常用参数说明 52 | 53 | 常用参数说明(详细的参数信息请查看 `subfinder -h`): 54 | 55 | | 参数 | 含义 | 必需 | 56 | | ----------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------- | 57 | | `-l, --languages` | 指定字幕语言,可同时指定多个。每个字幕查找器支持的语言不相同。具体支持的语言请看下文。 | 否,subfinder 默认会下载字幕查找器找到的所有字幕。 | 58 | | `-e, --exts` | 指定字幕文件格式,可同时指定多个。每个字幕查找器支持的文件格式不相同。具体支持的文件格式请看下文。 | 否,subfinder 默认会下载字幕查找器找到的所有字幕。 | 59 | | `-m,--method` | 指定字幕查找器,可同时指定多个。 | 否,subfinder 默认使用 shooter 查找字幕。 | 60 | | `-k, --keyword` | 手动搜索关键字. 当 SubFinder 使用本身的关键字无法搜索到字幕时, 可以通过这个参数手动指定关键字. | 否 | 61 | | `--video_exts` | 视频文件的后缀名(包括.,例如. mp4) | 否 | 62 | | `--ignore` | 忽略本地已有的字幕强行查找字幕. 注意: 这可能会覆盖本地已有的字幕. 默认 False。 | 否 | 63 | | `--exclude` | 排除文件或目录,支持类似于 shell 的文件匹配模式。详情见下文 | 否 | 64 | | `--api_urls` | 指定字幕搜索器的 API URL。详情见下文 | 否 | 65 | | `-c, --conf` | 配置文件 | 否,SubFinder 默认从~/.subfinder.json 读取。 | 66 | | `-s,--silence` | 静默运行,不输出日志 | 否 | 67 | | `--debug` | 调试模式,输出调试日志 | 否 | 68 | | `-h,--help` | 显示帮助信息 | 否 | 69 | 70 | - `--exclude`, 支持的匹配模式类似于 shell,`*` 匹配任意长度的字符串,`?` 匹配一个字符,`[CHARS]` 匹配 CHARS 中的任一字符。例如: 71 | 72 | - 排除包含 `abc` 的目录:`--exclude '*abc*/'`。注意添加单引号,防止 shell 对其进行扩展。 73 | 74 | - 排除包含 `abc` 的文件:`--exclude '*abc*'`。注意和上个例子的区别,匹配目录时结尾有 `/` 目录分隔符,匹配文件则没有。 75 | 76 | 77 | - `--api_urls` 78 | 79 | [字幕库](http://www.zimuku.la) 的链接不太稳定,有时候会更换域名,因此提供 `--api_urls` 选项自定义 API URL,以防域名或链接变动。 80 | 81 | `--api_urls` 只接收 JSON 格式的字符串。 82 | 83 | 获取正确的 API URL 的方法: 84 | 85 | - 字幕库的 API 一般形如 http://www.zimuku.la/search, 这个 URL 就是网页端 “搜索” 功能的 URL。 86 | 87 | - 字幕组的 API 一般形如 http://www.zmz2019.com/search, 这个 URL 同样是网页端 “搜索” 功能的 URL。 88 | 89 | - SubHD 的 API 一般形如 https://subhd.tv/search. 90 | 91 | - 射手网的 API 比较稳定,一般不会变动。 92 | 93 | **如果发现字幕网站的 API URL 发生改变, 欢迎提交 issue.** 94 | 95 | 配置示例: 96 | 97 | ``` 98 | { 99 | // 设置字幕库的搜索 API 100 | "zimuku": "http://www.zimuku.la/search", 101 | // 设置字幕组的搜索 API 102 | "zimuzu": "http://www.zmz2019.com/search", 103 | // 设置字幕组获取字幕下载链接的 API, 注意不包含域名 104 | "zimuzu_api_subtitle_download": "/api/v1/static/subtitle/detail", 105 | // 设置 SubHD 的搜索 API 106 | "subhd": "https://subhd.tv/search", 107 | // 设置 SubHD 获取字幕下载链接的 API, 注意不包含域名 108 | "subhd_api_subtitle_download": "/ajax/down_ajax", 109 | // 设置 SubHD 获取字幕预览的 API, 注意不包含域名 110 | "subhd_api_subtitle_preview": "/ajax/file_ajax" 111 | } 112 | ``` 113 | 114 | 支持的语言和文件格式: 115 | 116 | | 字幕查找器 | 语言 | 文件格式 | 117 | | ---------- | ----------------------------------- | -------------- | 118 | | shooter | ['zh', 'en'] | ['ass', 'srt'] | 119 | | zimuku | ['zh_chs', 'zh_cht', 'en', 'zh_en'] | ['ass', 'srt'] | 120 | | zimuzu | ['zh_chs', 'zh_cht', 'en', 'zh_en'] | ['ass', 'srt'] | 121 | | subhd | ['zh_chs', 'zh_cht', 'en', 'zh_en'] | ['ass', 'srt'] | 122 | 123 | 语言代码: 124 | 125 | | 代码 | 含义 | 126 | | ------ | ------------------ | 127 | | zh | 中文,简体或者繁体 | 128 | | en | 英文 | 129 | | zh_chs | 简体中文 | 130 | | zh_cht | 繁体中文 | 131 | | zh_en | 双语 | 132 | 133 | ### 配置文件 134 | 135 | 配置文件是 JSON 格式的,支持命令行中的所有选项。命令行中指定的选项优先级高于配置文件的。 136 | 137 | 配置文件中的 key 一一对应于命令行选项,例如 `-m,--method` 对应的 key 为 `method`。 138 | 139 | 示例: 140 | 141 | ```json 142 | { 143 | "languages": ["zh", "en", "zh_chs"], 144 | "exts": ["ass", "srt"], 145 | "method": ["shooter", "zimuzu", "zimuku"], 146 | "video_exts": [".mp4", ".mkv", ".iso"], 147 | "exclude": ["excluded_path/", "*abc.mp4"], 148 | "api_urls": { 149 | // 设置字幕库的搜索 API 150 | "zimuku": "http://www.zimuku.la/search", 151 | // 设置字幕组的搜索 API 152 | "zimuzu": "http://www.zmz2019.com/search", 153 | // 设置字幕组获取字幕下载链接的 API, 注意不包含域名 154 | "zimuzu_api_subtitle_download": "/api/v1/static/subtitle/detail", 155 | // 设置 SubHD 的搜索 API 156 | "subhd": "https://subhd.tv/search", 157 | // 设置 SubHD 获取字幕下载链接的 API, 注意不包含域名 158 | "subhd_api_subtitle_download": "/ajax/down_ajax", 159 | // 设置 SubHD 获取字幕预览的 API, 注意不包含域名 160 | "subhd_api_subtitle_preview": "/ajax/file_ajax" 161 | } 162 | } 163 | ``` 164 | 165 | 166 |
167 | 168 | # 本镜像的一些特点 169 | - 做了usermapping,使用你自己的账户权限来运行,这点对于群辉来说尤其重要 170 | - 支持选择执行检查完全部文件后是否后退出容器(默下载完成全部字幕后自动退出容器) 171 | 172 | 173 | # Architecture 174 | 只有x86-64版,arm64版编译失败 175 | | Architecture | Tag | 176 | | ------------ | -------------- | 177 | | x86-64 | latest | 178 | 179 | 180 | # Changelogs 181 | ## 2020/11/28 182 | 1、更新workflow,实现自动更新subfinder release版本 183 | 2、更换base image python:3.6-slim-buster,大幅降低镜像体积 184 | 185 | ## 2020/09/16 186 | 187 | 1、更新subfinder v2.0.1 188 | 189 | ## 2020/07/15 190 | 191 | 1、更新subfinder v1.1.4 192 | 193 | - 将参数 `--repeat` 修改为 `--ignore`. 194 | 195 | - 添加新参数 `-k, --keyword`. 196 | 197 | - 支持 SubHD. SubHD 在下载字幕时经常弹出验证码, 无法通过正常的API获取到字幕的下载链接, 目前的做法是通过 SubHD 的字幕预览功能获取字幕. 198 | 199 | - 修复一些 bug. 200 | 201 | - 注意: 配置文件中的一些配置项修改了名字, 具体查看官方配置文档. 202 | 203 | ## 2020/04/19 204 | 205 | 1、上一个版本有问题,回退 commit@b735680240cf0b2f2734f9d0e9af49a77b81620e 206 | 207 | ## 2020/04/16 208 | 209 | 1、取消定时执行任务,使用inotifywait文件监控 @fanyinghao 210 | 2、启动容器时全局遍历一次媒体文件 211 | 3、增加启动容器时是否遍历媒体文件选项`BS=true`默认开启 212 | 213 | ## 2020/04/14 214 | 215 | 1、根据广大人民群众的意见,修改默认参数为一天执行一次`1d` 216 | 217 | ## 2020/04/11 218 | 219 | 1、去掉cron,改用sleep,降低使用难度,防止cron失效。现在设置更简单,env里设置`TASK`时间即可 220 | 2、 `s 为秒,m 为 分钟,h 为小时,d 为日数`,默认2小时执行一次任务,例`TASK=2h` 221 | 222 | 223 | ## 2020/04/10 224 | 225 | 1、update subfinder 1.1.2 226 | 2、根据作者的意见,删除指定语言参数,默认全部语言 227 | 3、修复zimuzu解析问题 228 | 4、增加了手动选择执行间隔选项,`/config/subfinder-cron`,cron表达式 229 | 230 | ## 2020/04/09 231 | 232 | 1、update subfinder 1.1.1 233 | 2、更改执行计划为,打开容器后开始遍历媒体文件,遍历结束后休眠,之后每隔一小时遍历一次 234 | 3、更改媒体挂载卷为``/media`` 235 | 236 | ## 2020/03/05 237 | 238 | 1、first commit 239 | 240 | 241 | # Document 242 | 243 | ## 挂载路径 244 | ``/config`` ``/media`` 245 | 单个影视目录 246 | ![4zb8Mq](https://cdn.jsdelivr.net/gh/SuperNG6/pic@master/uPic/4zb8Mq.png) 247 | 分类挂载影视目录 248 | ![Xnip2020-09-28_10-47-18](https://cdn.jsdelivr.net/gh/SuperNG6/pic@master/uPic/2020-09-28/Xnip2020-09-28_10-47-18.png) 249 | 权限设置 250 | ![2HgLQ4](https://cdn.jsdelivr.net/gh/SuperNG6/pic@master/uPic/2HgLQ4.png) 251 | 252 | ## 关于群晖 253 | 254 |
255 | 群晖DSM权限设置 256 | 257 | 群晖用户请使用你当前的用户SSH进系统,输入 ``id 你的用户id`` 获取到你的UID和GID并输入进去 258 | 259 | ![nwmkxT](https://cdn.jsdelivr.net/gh/SuperNG6/pic@master/uPic/nwmkxT.jpg) 260 | ![1d5oD8](https://cdn.jsdelivr.net/gh/SuperNG6/pic@master/uPic/1d5oD8.jpg) 261 | ![JiGtJA](https://cdn.jsdelivr.net/gh/SuperNG6/pic@master/uPic/JiGtJA.jpg) 262 | 263 | ### 权限管理设置 264 | 对你的``docker配置文件夹的根目录``进行如图操作,``你的下载文件夹的根目录``进行相似操作,去掉``管理``这个权限,只给``写入``,``读取``权限 265 | ![r4dsfV](https://cdn.jsdelivr.net/gh/SuperNG6/pic@master/uPic/r4dsfV.jpg) 266 | 267 |
268 | 269 | ## Linux 270 | 271 | 输入 ``id 你的用户id`` 获取到你的UID和GID,替换命令中的PUID、PGID 272 | 273 | __执行命令__ 274 | ```` 275 | docker create \ 276 | --name=subfinder \ 277 | -e PUID=1026 \ 278 | -e PGID=100 \ 279 | -e TZ=Asia/Shanghai \ 280 | -e TASK=2h \ 281 | -v /path/to/appdata/config:/config \ 282 | -v /path/to/libraries:/media \ 283 | superng6/subfinder 284 | ```` 285 | docker-compose 286 | ```` 287 | version: "3" 288 | services: 289 | aria2: 290 | image: superng6/subfinder 291 | container_name: subfinder 292 | environment: 293 | - PUID=1026 294 | - PGID=100 295 | - TZ=Asia/Shanghai 296 | - TASK=2h 297 | volumes: 298 | - /path/to/appdata/config:/config 299 | - /path/to/libraries:/media 300 | ```` 301 | 302 | # Preview 303 | ![nQxPak](https://cdn.jsdelivr.net/gh/SuperNG6/pic@master/uPic/nQxPak.png) 304 | ![j3geSM](https://cdn.jsdelivr.net/gh/SuperNG6/pic@master/uPic/j3geSM.png) 305 | ![MQTiHZ](https://cdn.jsdelivr.net/gh/SuperNG6/pic@master/uPic/MQTiHZ.png) 306 | -------------------------------------------------------------------------------- /ReleaseTag: -------------------------------------------------------------------------------- 1 | 2.2.1 2 | -------------------------------------------------------------------------------- /root/etc/cont-init.d/10-config: -------------------------------------------------------------------------------- 1 | #!/usr/bin/with-contenv bash 2 | 3 | #设置时区 4 | ln -sf /usr/share/zoneinfo/$TZ /etc/localtime 5 | echo $TZ > /etc/timezone 6 | 7 | #修改用户UID GID 8 | groupmod -o -g "$PGID" abc 9 | usermod -o -u "$PUID" abc 10 | -------------------------------------------------------------------------------- /root/etc/cont-init.d/30-config: -------------------------------------------------------------------------------- 1 | #!/usr/bin/with-contenv bash 2 | 3 | # 检查config配置文件,并创建 4 | if [ ! -e "/config/subfinder.json" ] ; then 5 | cp /subfinder/subfinder.json /config/subfinder.json 6 | fi 7 | 8 | # permissions 9 | chown -R abc:abc \ 10 | /config \ 11 | /media 12 | -------------------------------------------------------------------------------- /root/etc/services.d/subfinder/run: -------------------------------------------------------------------------------- 1 | #!/usr/bin/with-contenv bash 2 | 3 | # 启动定时任务,默认一小时执行一次 4 | # 启动subfinder查找字幕 5 | s6-setuidgid abc \ 6 | subfinder /media \ 7 | -c /config/subfinder.json 8 | echo ==============本轮搜索已结束,下次遍历为${TASK}后============== 9 | sleep $TASK 10 | -------------------------------------------------------------------------------- /root/subfinder/subfinder.json: -------------------------------------------------------------------------------- 1 | { 2 | "exts": ["ass", "srt"], 3 | "method": ["shooter", "zimuzu", "zimuku","subhd"], 4 | "video_exts": [".mp4", ".mkv", ".iso"], 5 | "api_urls": { 6 | "zimuku": "http://www.zimuku.la/search", 7 | "zimuzu": "http://www.rrys2020.com/search", 8 | "zimuzu_api_subtitle_download": "/api/v1/static/subtitle/detail", 9 | "subhd": "https://subhd.tv/search", 10 | "subhd_api_subtitle_download": "/ajax/down_ajax", 11 | "subhd_api_subtitle_preview": "/ajax/file_ajax" 12 | } 13 | } 14 | --------------------------------------------------------------------------------