Symedia + FastEmby:Emby 115 直链神器
一. 前言
注意:需要留空 两个 cookie,CloudDrive2,Symedia 各一个
已经购买作者的激活码可以部署,如没购买可以前往作者项目地址
💳 购买方式:
扫描页面中的赞助二维码进行付款
付款时请备注您的邮箱地址
将付款截图和邮箱发给作者
激活码将发送至您提供的邮箱
二. 介绍
✨ Symedia 核心功能:
🔥 链接同步: 同步本地 / 网盘文件夹,生成 Strm / 软链接,同步元数据到指定文件夹
🔥 STRM 快速生成:快速生成 STRM 文件,节省本地存储空间
🔥 秒级监控:基于 CloudDrive2 的 Webhook 的无索引监控,告别传统轮询
🔥 智能整理:视频文件自动识别、重命名、分类您的媒体文件
🔥 元数据刮削:自动获取影片信息,让您的媒体库更专业
🔥 完美对接: 同步生成 Strm / 软链接后,会自动通知 Emby 进行扫库,并发送入库通知
🔥 插件功能: 提供与媒体库相关的各种功能插件,持续更新中
三. 效果预览

四. 相关地址
Docker Hub:
五. 部署教程
1. CloudDrive2
1.1 Docker Compose:
version: '3'
services:
  cloudnas:
    image: cloudnas/clouddrive2:latest    # 拉取最新镜像
    container_name: clouddrive2           # 容器名称
    restart: unless-stopped               # 重启策略
    privileged: true                      # 特权模式
    pid: 'host'                           # 使用宿主机的 PID 命名空间
    environment:
      - TZ=Asia/Shanghai                  # 容器时区
      - PUID=0                            # 运行程序的用户 ID
      - PGID=0                            # 运行程序的用户组 ID
      - CLOUDDRIVE_HOME=/Config           # 指定 CloudDrive 的配置文件目录
    devices:
      - /dev/fuse:/dev/fuse               # 允许容器使用 FUSE 设备(用于挂载文件系统)
    ports:
      - '19798:19798'                     # 映射端口:主机 19798 -> 容器 19798
    volumes:
      - /volume1/docker/cd2/config:/Config         # 映射 配置文件夹
      - /volume1/docker/CloudNAS:/CloudNAS:shared  # 映射 本地可挂载的目录,并共享访问权限2. Symedia
2.1 Docker Compose:
version: '3'
services:
  symedia:
    image: shenxianmq/symedia:latest        # 拉取最新镜像
    container_name: symedia                 # 容器名称
    restart: always                         # 重启策略
    environment:
      - TZ=Asia/Shanghai                    # 容器时区
      - ALL_PROXY=http://192.168.31.2:7893  # 环境代理
      - LICENSE_KEY=''                      # 作者发的激活码
    ports:
      - '8095:8095'                         # 映射端口:主机 8095 -> 容器 8095
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro  # Docker 宿主机通信
      - /volume1/docker/symedia/config:/app/config    # 映射 sa 配置路径
      - /volume1/docker/CloudNAS:/CloudNAS:rslave     # 映射 cd2 的本地路径
      - /volume1/Media:/Media                         # 映射 本地媒体目录,检查路径外的映射和链接同步的目录路径以及大小写是否一致3. FastEmby
3.1 Docker Compose:
version: '3'
services:
  FastEmby:
    image: shenxianmq/fastemby:latest     # 使用最新镜像
    container_name: FastEmby              # 容器名称
    restart: unless-stopped               # 重启策略
    network_mode: host                    # 网络模式
    environment:
      - TZ=Asia/Shanghai                  # 环境变量:容器时区
      - CHECKIN=0                         # 关闭 115 自动签名
    volumes:
      - /volume1/FastEmby/config:/app/config  # 映射 配置文件夹
      - /volume1/FastEmby/log:/app/log        # 映射 日志文件夹4. Emby
4.1 Docker Composer:
version: '3'
services:
  emby_server:
    image: linuxserver/emby:latest                # 使用最新镜像
    container_name: emby_server                   # 容器名称
    restart: unless-stopped                       # 重启策略
    network_mode: bridge                          # 网络模式
    environment:
      - PUID=0
      - PGID=0
      - NO_PROXY=172.17.0.1,127.0.0.1,localhost   # 环境代理
      - ALL_PROXY=http://x.x.x.x:x                # 环境代理
      - HTTP_PROXY=http://x.x.x.x:x               # 环境代理
    ports:
      - '8096:8096'                               # 映射端口:主机 8096 -> 容器 8096
    volumes:
      - /volume1/docker/emby:/config              # 映射 配置文件夹
      - /volume1/docker/CloudNAS:/CloudNAS:rslave # 映射 cd2 的本地路径,需与 sa 挂载一致,否则不可播放
      - /volume1/Media:/Media                     # 映射 媒体目录,需挂载六. 使用教程
1. CloudDrive 2
1.1 挂载配置
注意:记得挂载网盘的【根目录】,否则后期容易出现各种文件夹路径权限的错误,掉盘也无法通过 sa 去刷新



2. Symedia
2.1 网页管理
浏览器打开 NAS_IP:8085,就可以访问项目界面了,默认用户名 admin,默认密码 password

2.2 全局设置:用户名
首次进入设置,全局设置内修改用户名密码,重启生效


2.3 115 设置
填入名称与115 cookie,建议抓取微信小程序 cookie,可风控检测(如果使用 FastEmby 后端,可以自动扫码切换 cookie)




2.4 链接同步
顾名思义,获取网盘中的目录树生成后,在本地目录生成对应的 strm。emby 添加的就是这里的文件
(1). 新建同步,以 "电视剧" 为例:填写任务名称之后,选择同步方式:
目录树同步(推荐)
星标同步(会使你同步的文件全部打星标,谨慎使用)
常规同步(不建议,速度慢容易风控)

(2). 选择云盘文件夹名字,例如 115(此名字填写在 CD2 网页中,你能看到的那个网盘名字)
如果不懂,看下面的图,对应这里分别要填写:115,123,video,阿里云盘Open

(3). 选择 115 cookie 配置
(4). 填写 云盘根目录源目录链接目录等
云盘根目录:选择在 CD2 中挂载点的名称,网盘路径是根路径
源目录(新版本改成了媒体目录):选择需要生成 strm 的视频,在网盘中的位置
链接目录:本地 nas 中的存放 strm 的位置
(5). 选择挂载类型,可选 cd2、alist、custom(自行配置,fastemby 用户可选)
(6). 以 cd2 为例,填写远端地址,strm 模式(软链接或 strm),及其它。右侧实时更新 strm 预览结果,可对照使用。
(7). 填写本地需要生成的 strm、软链接及元数据后缀,区别于 autosumlink,sa 可以同时生成 strm 或软链接。
(8). 侧边栏手动同步,可以复制本地已有的配置,省去反复重新填写的麻烦
(9). 高级配置:
Strm 模式:
cloud模式文件内是 http 开头的链接local模式文件内是 文件的路径
注意: 要删除指定前缀才能成功播放
例如:我这里的实际解码路径为:
http://192.168.31.10:19798//static/http/192.168.31.10:19798//False//CloudNAS/CloudDrive/115/影视库/电视剧/test.mkv
在 cd2 中查看我路径实际为
http://192.168.6181:19798/static/http/192.168.6.181:19798/False//CloudNAS/CloudDrive/115
/CloudNAS/CloudDrive 为多余的,删掉即可


然后运行试试,可以看到生成的速度很快

作者很贴心,单独给同步的链接做了日志,新增删除都有记录,很细

上面例子配置完后,大概就是下面这样:

2.5 通知
Telegram 机器人通知
tg 寻找机器人 father @BotFather 创建属于自己的机器人,获取 bot tokon,填入自己的 tg ID 以接收 sa 通知或互动。

企业微信通知
版权声明:本文为「HuanHQ」的原创文章,转载请附上原文出处链接及本声明
设置教程网址链接:
2.6 webhook 监控
注:webhook 不起作用:检查是否是 cd2 会员,cd2 要是 host 模式
上传 webhook.toml 文件到 cd2 的 config 目录,修改 base_url 为自己的 sa 实际 IP 地址
不能直接下载 webhook.toml,则下载 zip 文件解压

重启 cd2 生效
开启 webhook 监控,大媒体库(500T 以上)可以不开 cd2 永久缓存,可实时监控。

2.7 归档
2.8 TG bot 保姆级教程
(1). 打开 telegram,在顶部栏搜索 @BotFather 【 
(2). 点击左下角菜单栏,点击最顶部 /neewbot

(3). 输入 Symedia 通知 的名称或自己取名

(4). 给自己的机器人起一个独一无二的 ID。注意:以 bot 或 _bot 结尾

(5). 保存图中的 API,一会儿要用到
(6). 获取自己的 ID,telegram 搜索 @getidsbot 【
同理点击左下角菜单,或输入 /about,等待机器人返回第一行:ID:XXXXXXX,复制保存

(7). 配置 SA bot,开启 SA,左侧菜单栏打开设置 → 通知

左侧第一行,填入刚刚从 @botfather 获取的 API,其他三个文本框,均输入 @getidsbot 获取的 ID,将下面八个开关按需打开,再点击保存和测试,看看机器人是否给你发送通知,如下图

如果收到此测试消息,则可以正常使用
2.9 插件配置
EmbyServer
Emby 媒体服务器通知:需要设置媒体服务器 Webhook,回调相对路径为 /api/v1/webhook/mediamsg/emby/{Emby IP:端口}/{Emby API Key}?token=symedia(8095 端口),其中 symedia 为设置的 API\_TOKEN。
http://172.17.0.1:8095/api/v1/webhook/mediamsg/emby/172.17.0.1:8096/770131037e8e49459618af98c14de06c?token=symedia

路径替换:Emby 和 Symedia 对于同一个目录映射方式相同时可以不填
Emby 通知的原理是把生成的 Strm|软链接的路径通知给 Emby,让 Emby 去扫描该路径,如果 Strm|软链接的目录在 Symedia 和 Emby 中的映射不一样,则需要在这里进行替换。因此建议 Symedia 和 Emby 在映射目录时尽量保持一致
支持的配置格式(注意空格):多个配置用 隔开
被替换路径1 => 替换路径1;被替换路径2 => 替换路径2;...
示例:比如对于
/mnt/Symlink
在 Symedia 中的映射为
/mnt/Symlink:/Symedia/Symlink在 Emby 中的映射为
/mnt/Symlink:/Emby/Symlink我们就需要把
/Symedia/Symlink替换为/Emby/Symlink那么路径替换就是
/Symedia/Symlink => /Emby/Symlink
另外提及一点,按照上面的示例,如果是这么配置的情况下,这里的路径替换可以不用填写
对于
/mnt/Symlink
在 Symedia 中的映射为
/mnt/Symlink:/Symlink在 Emby 中的映射为
/mnt/Symlink:/Symlink就是说,把实际的物理机实际路径
/mnt/Symlink,给到两个容器(Symedia、Emby)的映射路径用同一个路径/Symlink进行映射,这样就不需要替换路径啦
注意!!!
如果遇到 Emby 的通知测试失败,需要给 Emby 添加这三条环境变量
HTTP_PROXY=http://192.168.9.5:7890
ALL_PROXY=http://192.168.9.5:7890
NO_PROXY=172.17.0.1,127.0.0.1,localhost3. FastEmby
待补充一个 Emby 设置
3.1 配置设置
启动完容器后,先打开配置文件中的 confifg.yaml ,需要手动配置一下,才能进入网页进行其余配置。
或者你要都在配置文件中配置完也可以。

这里附带 H 佬 更详细的食用教程:
3.2 测试播放
注意:这里我们需要访问的是
8098这个容器端口,不是你自己的 emby 的8096端口
全部填写完后,重启即可。然后外网访问播放一下,查看日志看看是否走了网盘的 302 直链
以下借用 H 佬 的测试播放图片
我这边设备是 Iphone,测试软件为 Fileball,可以看到,成功走了重定向302

打开 fastemby 的日志,可以看到,成功302了

3.3 网页端播放
我实在是不建议网页端播放,因为 emby 网页端不仅存在跨域问题,而且色准很多影视一言难尽(一坨屎)。但是也能实现,所以这里也记录一下。
安装 
[
    {
        "alwaysOn":true,
        "respHeaders":[
            {
                "enabled":true,
                "name":"Access-Control-Allow-Origin",
                "value":"*"
            }
        ],
        "shortTitle":"1",
        "title":"CORS Support",
        "urlFilters":[
            {
                "enabled":true,
                "urlRegex":"*.115.com"
            }
        ],
        "version":2
    }
]


七. 常见问题及注意点
注意:以下是个人食用
1. 已经存在的目录树流程
链接同步(生成目录树到本地)→ 通知 emby 入库 → emby 刮削 → 入库完成
2. 通过 SA 刮削流程
归档刮削(待整理的媒体库) → 链接同步(生成目录树到本地) → 通知 emby 入库 → emby 刮削 → 入库完成
参考资料
排名不分先后,按字母顺序排序,感谢大佬们辛苦开发,整理