什么是strm?

strm 文件是一种非常小巧的文本文件,里面保存了指向在线视频的链接地址。它的大小通常只有几十字节,因此占用的存储空间非常少。

这种文件可以用来指向各种视频资源,比如网上的流媒体内容或本地存储的视频文件。它适合用来管理大量的网络存储媒体资源。例如在播放 STRM 文件时,可以直接通过链接播放网盘中的视频,而不用把视频下载到本地设备上。这样既方便又节省空间,同时还能保证播放流畅。

  • 轻量化 Emby 服务器,降低 Emby 服务器的性能需求以及硬盘需求

  • 运行稳定

  • 相比直接访问 Webdav,Emby、Jellyfin 服务器可以提供更好的视频搜索功能以及自带刮削器,以及多设备同步播放进度。

为什么使用123strm?

25年6月alist被曝疑似被收购以后,普遍比较担心使用的安全性。详细情况可前往github查看相关issue。123云盘也发公告表示于6.16暂停支持alist挂载。

于是有了本软件的诞生,目的为取消alist依赖,使用123云盘的官方api进行处理,安全稳定。

  • 使用123云盘官方api,安全可靠,不依赖第三方

  • 单线程下载,自动跳过已存在图片和字幕等文件,不会重复下载

  • 可配置海报、字幕、nfo文件是否下载

  • 自动清理本地不存在于123云盘的文件

项目地址

https://github.com/knifezred/123strm

部署方式

config配置

# https://www.123pan.com/developer 注册获取
clientID: ""
clientSecret: ""
# 123盘文件夹的ID
# 浏览器打开对应文件夹https://www.123pan.com/?homeFilePath=1312389
# homeFilePath后的最后一串数字就是该文件夹的ID。如要配置根目录,直接设置为0
rootFolderId: "0"
# 输出路径
targetDir: "/media/"
# 定时任务cron表达式,不配置则默认为每天凌晨1点执行
cron: "0 10 * * *"
# 平铺模式,开启后 subtitle、image、nfo 强制关闭(可选,默认 False)
flatten_mode: False
# strm路径前缀,可设置为cd2挂载的目录或者123盘webdav挂载的路径,需要加上对应设置的rootFolder的文件夹目录
# 如:选择的rootFolder为 /影视剧/电视剧,cd2映射的路径为 /volume1/docker/cloud_nas/123云盘
# 则pathPrefix为 /volume1/docker/cloud_nas/123云盘/影视剧/电视剧
pathPrefix: "/volume1/docker/cloud_nas/123云盘/影视剧"
# 是否下载字幕文件(可选,默认 False)
subtitle: True
# 是否下载图片文件(可选,默认 False)
image: True
# 是否下载 .nfo 文件(可选,默认 False)
nfo: True
# 视频文件最小限制,低于该大小的视频不处理,默认为100Mb
minFileSize: 104857600

docker本地包

github下载:https://github.com/knifezred/123strm/releases/tag/v0.1

自行打包镜像

# 生成docker镜像
docker build -t 123strm .
# 生成本地镜像包
docker save -o 123strm.tar 123strm
# 压缩镜像包减小体积
gzip 123strm.tar

compose安装:以绿联Nas为例

将打包的镜像包传到nas,并在docker-镜像-本地镜像-添加镜像中选择并导入。

添加完镜像后在项目一栏选择创建项目,将compose示例填入配置,项目名称和路径可自行填写,建议为123strm

services:
  autofilm:
    image: 123strm:latest
    container_name: 123strm
    network_mode: host
    volumes:
      - /volume1/docker/123strm/config:/config
      - /volume1/docker/123strm/media:/media
    restart: always
    working_dir: /app
    environment:
        PUID: "0"
        PGID: "0"

1749798192698.png

直接运行python脚本

前往github克隆项目到本地,直接pyhton app/main.py即可。

使用效果

看到如下信息即表示软件正常运行,等待执行即可。

运行时会提供日志,显示下载文件地址。