Skip to content
YUNDAN21 edited this page Dec 21, 2024 · 2 revisions

OneStrm教程

OneStrm部署

  1. 使用docker-compose进行部署,新建docker-compose.yml文件,内容如下:

    #需要用bridge桥接的网络方式,不要用 host
    version: '3.8'
    
    services:
      onestrm:
        image: lifj25/onestrm:latest
        container_name: onestrm
        restart: always
        ports:
          - "18003:18003"  # web管理页面
          - "18302:18302"  # 302播放地址
        volumes:
          - ./config:/app/config  # 保存配置文件,左侧路径可自行更改
          - F:\emby\media_onestrm:/movie_strm  # 保存strm 和元数据路径,左右侧路径可自行更改,请设置写入权限
        environment:
          - PUID=0
          - PGID=0

    注意点:

    • 这里302播放端口既是反代后emby的播放端口(支持302),也是strm中直链的前缀地址。

    • 可以修改web管理页面和302播放端口,如需把web端口改为9527,302播放端口改为9096,则把ports那一块更改为:

            - "9527:18003"  # web管理页面
            - "9096:18302"  # 302播放地址
    • 路径映射:

            - local_config_path:/app/config  # 保存配置文件,左侧路径可自行更改
            - local_strm_path:/movie_strm  # 保存strm 和元数据路径,左右侧路径可自行更改,请设置写入权限

      路径映射左侧路径可变为任意你想要的本地路径,右侧路径不能改变

    • docker-compose up -d启动docker

  2. 使用docker-cli部署方式类似,不再赘述

OneStrm配置

  1. 为防止滥用,OneStrm带有授权机制,运行docker访问默认18003端口进入管理界面联系作者获取授权码
  2. 在获取激活码后,设置账号及对应密码进入管理界面
  3. 注意所有配置修改后均需点击右下角保存方可生效

用户中心配置

image-20241221134546524

其他配置不再赘述,这里TMDB密钥的填写主要有两个目的,一是oneStrm的登录页海报,另一个是为了在通知设置中,能够获取到对应入库影片的信息(后续再说)

Cookies配置

image-20241221134849802

这里选取自己用不到的客户端,点击扫码,使用115手机端扫码即可获取对应客户端的cookies,可添加多个cookies来避免cookies失效,填写完cookies后记得保存

Emby设置

image-20241221135117894

此处填写自己的Emby地址(一般为8096端口)以及Emby api即可,下面的两个选项作用如下:

  • Emby刷新**(不建议启用)** :如果Emby媒体库关闭实时监控,需开启该开关(建议启动Emby媒体库实时监控,并关闭该开关);
  • 最新入库显示:开启此选项会在仪表盘页面下方显示最新入库影片的信息,包括影片海报和影片名称

Strm设置

image-20241221135542340

对应选项描述如下:

  • 115网盘监控路径:填写115网盘中的对应路径,如果有多个路径,使用英文逗号进行分隔,如若添加路径为/movie/comic,则此处填写/movie,/comic
  • 本地保存路径:此处为容器映射后路径(不是主机上的路径),填写/movie_strm即可
  • Strm内容前缀:若保持为空,则生成链接格式为不带http链接的路径
    • 勾选生成pickcode:生成链接带pickcode,不用cd2等软件也能获取媒体信息,但是需要302转发软件支持(Strm内容前缀保持默认)
    • 勾选短链:生成链接格式不带路径,只有文件名+pickcode
    • 推荐配置为Strm内容前缀填写http://ip:port(oneStrm网页管理链接),并开启生成pickcode和短链,这样的话生成strm内部链接格式为http://ip:port/name?pickcode={pickcode},若生成正确,则此链接可直接在浏览器访问到对应资源
  • 生成Strm大小限制:当网盘中文件大小大于此大小时才会生成strm
  • 自动扫描间隔:假设输入为x,若x为0,则不自动扫描,若x>0,则会每隔x分钟扫描一次
  • 视频文件后缀:只有视频文件的后缀才会生成strm,建议保持默认,如未有的格式用英文状态下:,.mpeg方式新增
  • 其他文件后缀:对应选项"下载其他刮削文件",非图片、非.ass,.srt,.ssa的字幕,例如nfo等
  • 三个选项
    • 下载字幕刮削文件:是否下载对应字幕文件,即以.ass.srt的文件,若选择【(1)网盘路径】则为(1)中填写的网盘路径,若选择【(2)网盘路径】则为(2)中填写的网盘路径(选择【(2)网盘路径】会出现新的路径输入框)
    • 下载图片刮削文件和其他刮削文件选项与字幕刮削文件,如果有其他格式的文件需要下载,可在上面其他文件后缀中增加对应后缀
  • 下面几个开关:
    • 增量扫描:扫描完后,本地删除strm 或者元数据,不会重新生成或下载,如果需要重新下载需要执行[单次全量扫描]、或者关闭增量扫描
    • 自动删除:网盘删除媒体文件后,自动删除本地已生成的 strm;
    • 删无strm文件夹:文件夹内没有strm整个文件夹删除,不管文件夹是否有其他内容,都直接删除文件夹
    • 实时监控:需借助cd2的实时监控功能,开启实时监控后,在[本程序地址]填入本程序的地址,保存后点击下载webhook,并把该文件上传到cd2的配置文件夹根目录,并重启cd2
    • 数据库代理:拉取数据库时候,如果是设备网络对115网盘不友好,可以代理方式拉取(如回国代理、香港等),http://ip:端口,开启后会出现两个选项,包括超时时间(拉取数据库,[一条记录]超过设置时间未拉取完成就失败)和代理地址
    • 需要注意的一点是,即使上面strm前缀地址在填写时出错,这并不会影响所有经过反代后端口的播放请求,因为这里播放是直接通过strm中的pickcode获取直链,然后将此直链返回到请求客户端;但是这个会影响经过8096这一个未反代的emby端口的播放或者文件请求,因为此时返回的为strm中的整个链接,只有当链接填写正确,才能够正确向后端发起请求,获取到对应资源。

302转发设置

image-20241221142547761

  1. [如果是生成pickcode的方式,直接默认不需要修改]
  2. [需替换的路径] :把本地路径非网盘的路径,如:/media/115/电影/爆款好人.mkv,网盘路径:/电影/爆款好人.mkv,这里就要填入/media/115
  3. [替换成] :[需替换的路径]填入的替换成,一般情况下留空即可

通知设置

企业微信机器人

image-20241221142929506

手机端企业微信填写好对应信息新建企业,在群聊中的群机器人中新建一个群机器人,填写好对应信息后将生成的webhook地址输入到上述位置点击保存,再发送测试信息,能收到信息说明配置成功

企业微信应用

笔者并不推荐使用这种方式配置,因为过于麻烦,需要你有一个可信域名或者位于公网的API接收接口

image-20241221143121027

  1. 企业微信注册步骤与企业微信bot中相同
  2. 进入企业微信后台管理界面企业微信,点击应用管理,创建应用,填写好对应信息,创建完毕 image-20241221143344216
  3. 填写可信域名并下载对应文件到域名根目录,点击验证即可 image-20241221143557378
  4. 验证完成后,在企业可信IP中增加自己云服务器IP,并在云服务器部署lifj25/wxchat
  5. 填写上面需要的企业ID(我的企业->企业信息,下滑在最后即企业ID)、AgentID(点进应对应应用即可查看)、Secret(在AgentID下方,点击查看,在手机端企业微信即可查看)、代理地址(运行lifj25/wxchat这一docker的地址),保存后发送测试信息收到说明搭建成功

Telegram机器人

  1. 创建Telegram机器人并获取API Token:在Telegram @BotFather按照提示创建对应bot,按照下图获取对应API Token image-20241221144315218
  2. 获取telegram聊天ID:浏览器输入https://api.telegram.org/botYOUR_BOT_TOKEN/getUpdates,其中YOUR_BOT_TOKEN替换为1中获取的API Token,在返回的json文件中找到id选项,即Telegram聊天id
  3. 代理URL:即你的服务器或者本机的代理地址(如果无法直接访问tg)

其他选项

  • [同步发送二维码] :不开启,默认发送一个图文,需要打开链接才能看到二维码;

  • [任务成功通知] :成功执行任务,发送结果到对应的客户端;

  • [CD2掉盘通知] :cd2挂载的路径丢失发送通知,重启cd2也可能会认为是掉盘;

  • [自定义图片] :发送通知时候,可以自定义顶部图片,但是该链接需要公网可访问,不可为局域网地址,不填入则使用默认,生成strm能能识别名字会自动获取图片;

  • [跳转链接] :发送通知,如非更新cookie,可以设置自定义跳转链接,即点开链接后跳转到什么地址

常见问题

  1. 错误:OSError(36,'File name too long'):因为文件名称过长,文件系统无法支持这么长的文件名,更改个短的文件名即可解决
  2. 在影视库范围内进行移动时,strm不会进行更新(但其实不影响播放,所以关系不大),从外部移动到影视库时,在下次扫描时,会更新对应strm文件,比如在云盘中整个影视库根目录为/影视,从/影视/movie移动到/影视/comic不会使得对应strm发生更新,但是如果从/云下载移动一部影片到/影视,则会在下次扫描时生成对应strm文件。
  3. 待解决问题:无法查看完整日志,下载字幕、图片文件时可能超时。