# 115网盘302搭建emby服

使用QMS 和115网盘搭建 emby 网盘服。
<!--more-->
最近 115 做活动，八年八百的价格是真的香，就入手了一个。

虽然说我有几个 emby 公益服，但在晚高峰的时候看卡卡的还是不爽，115 保存影片然后自己看正好弥补了这个缺点。

买了后，用爆米花直接看也可以，还带刮削。但是有更加好玩的，115 网盘 302 搭建 emby 的网盘服，整好了后可以很方便用户管理和分享（独乐乐不如众乐乐）。

## 什么是刮削？
基于视频文件的命名，利用 scraper（刮削器）从网络数据库（如TMDB、IMDB）中搜索并自动匹配信息，方便用户通过海报墙管理本地媒体库。刮削完成后本地会生成一个 nfo 的文件。当 emby 读取到这个文件，就可以生成精美的海报墙了。

![](https://1mg.1144514.xyz/2026/02/20260204181749140.webp)

![](https://1mg.1144514.xyz/2026/02/20260204181749141.webp)
## Strm
Strm 文件是这次 302 实现的关键。

这里就直接照抄 [3.STRM与Emby · 1307super/cloud189-auto-save Wiki · GitHub](https://github.com/1307super/cloud189-auto-save/wiki/3.STRM%E4%B8%8EEmby) 了。

### 什么是 STRM 文件？
STRM 文件是一种纯文本文件，扩展名为 .strm。它的内容只有一行，就是媒体文件的实际播放地址。通过 STRM 文件，我们可以让 Emby 播放网络存储（如天翼云盘）中的视频，而不需要把视频下载到本地。

### STRM 工作原理
1. Emby 扫描到 .strm 文件
2. 打开文件读取里面的 URL
3. 通过该 URL 直接播放视频

## STRM 生成项目
当然，从别人分享的资源转存，STRM 不会凭空生成，需要用一些项目生成。

我在搜索的时候眼花缭乱，STRM 生成大多是免费的，但是 302 很多项目确实收费的。

最后我选择了免费的 [GitHub - qicfan/qmediasync: 基于 网盘 开放平台接口来同步生成 STRM、元数据下载、元数据上传，直链解析播放和外网302播放，Emby联动删除网盘文件等](https://github.com/qicfan/qmediasync), 下面简称 QMS 。

当然也有付费的：CMS、Mediahelp、Symedia、emby-ngnix。这些一步到位加上了资源搜索转存的功能。

如果有 PT 的话可以看看 MP。
## 观看步骤
```mermaid
graph LR
    %% 定义全局样式，增加内边距防止文字挤压
    classDef default fill:#f9f9f9,stroke:#333,stroke-width:1px,padding:10px;
    classDef highlight fill:#e1f5fe,stroke:#01579b,stroke-width:2px;

    subgraph Step1 [1. 资源获取]
        A("115 网盘<br/>原始资源")
    end

    subgraph Step2 [2. QMS 处理阶段]
        B("QMS 扫描<br/>115 目录")
        C("QMS 识别电影<br/>生成本地 .strm")
        B --> C
    end

    subgraph Step3 [3. Emby 索引阶段]
        D("Emby 扫描目录<br/>读取 NFO/海报")
        E("展示海报墙<br/>")
        D --> E
    end

    subgraph Step4 [4. 302 重定向播放]
        F("用户点击播放<br/>请求 strm")
        G("QMS 获取<br/>115 CDN 直链")
        H("返回 302 指令<br/>至客户端")
        I("客户端直连<br/>115 节点播放")
        F --> G --> H --> I
    end

    %% 连接子图
    A --> B
    C --> D
    E --> F

    %% 指定重点环节样式
    class G,H highlight;
```

## 搭建
前两天恰好看到飞牛爆出漏洞，这种暴露在公网的还是得要小心。尽量权限给小一点，不需要经常访问的就用 SSH 端口转发访问。
### docker-compose.yml
```yml
services:
  postgresql:
    image: postgres:16-alpine
    container_name: postgresql
    restart: always
    environment:
      POSTGRES_DB: qmediasync
      POSTGRES_USER: moviepilot
      POSTGRES_PASSWORD: pg_password
    networks:
      - web-bridge
    volumes:
      - './postgresql/data:/var/lib/postgresql/data'
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U moviepilot -d qmediasync"]
      interval: 5s
      timeout: 5s
      retries: 5

  qmediasync:
    image: qicfan/qmediasync:latest
    container_name: qmediasync
    restart: unless-stopped
    ports:
      - "127.0.0.1:12332:12332"
      - "127.0.0.1:12333:12333"
      - "127.0.0.1:8095:8095"
      - "127.0.0.1:8096:8096"
    volumes:
      - ./qmediasync/config:/app/config
      - ./media:/media
    environment:
      - GUID=1001
      - GPID=1001
      - TZ=Asia/Shanghai
      - DB_HOST=postgresql
      - DB_PORT=5432
      - DB_USER=moviepilot
      - DB_PASSWORD=pg_password
      - DB_NAME=qmediasync
    networks:
      - web-bridge
    depends_on:
      postgresql:
        condition: service_healthy

  emby:
    image: lscr.io/linuxserver/emby:latest
    container_name: emby
    restart: always
    networks:
      - web-bridge
    environment:
      - PUID=1001
      - PGID=1001
      - TZ=Asia/Shanghai
    volumes:
      - './emby/config:/config'
      - './media:/media'
    healthcheck:
      test: ["CMD-SHELL", "nc -z localhost 8096 || exit 1"]
      interval: 30s
      timeout: 10s
      retries: 3

networks:
  web-bridge:
    external: true
```

### 权限管理
创建一个非登录用户：
```shell
useradd -u 1001 -U -m -s /sbin/nologin moviepilot
id moviepilot
```

修改目录权限和所属用户：
```
chmod -R 755 /opt/moviepilot
chown -R 1001:1001 /opt/moviepilot
```

修改数据库目录权限和所属用户：
```
chown -R 70:70 ./postgresql/data
chmod -R 700 ./postgresql/data
```

### 反向代理
只需要反向代理 QMS 的 8095 端口。
其他需要用的时候用 SSH 端口转发访问就可以了。
## 使用
### Emby service
Emby 关闭自带的刮削（这样可以加快 emby 入库的速度），使用 QMS 的刮削功能。QMS 刮削后还可以将海报同步上传到 115。

Emby 关闭网页端的转码功能，避免 302 失败直接转码导致 VPS 卡死。

有需要的可以下载神医助手这个插件，增强了中文用户的体验，但是我安装提示修改失败，可能是我版本太高了。

### Emby client
直接连 QMS 的 8095 端口，而不是 emby 容器的 8095 端口。

如果 emby client 连接的是 emby 的 8095, 那么 302 会失败，并且播放会 error 报错。这也是我前面说只需要反向代理 QMS 的 8095 就可以。这是从 NS 老哥看到的解决办法。

### QMS 设置
照着[官方wiki](https://github.com/qicfan/qmediasync/wiki) 设置就可以了。

可以配置一下 telegram 的通知，这样刮削，入库也会用通知了。
![](https://1mg.1144514.xyz/2026/02/20260204181749142.webp)

## WAF 的设置
我依然用 Cloudflare 的 CDN，依旧用的 Cloudflare 的 WAF。

因为给非中国地区的 IP 访问加上托管质询。要将/web，/emby 路径加上白名单，保证正常观看。

## 资源获取
[Streamlit](https://nullbr.online/)，这个网站可以搜索出 115 的资源。

还有一个配套容器，可以实现点一下转存（这个搭建在家里的 NAS 就行，我就不搭建了）。





---

> 作者: Chifan  
> URL: https://eo.chifan.de/posts/emby-302-115/  

