私人影院之emby安装配置以及通过embyExternalUrl实现302播放
前两篇文章先讲了如何安装alist并添加常见网盘,以及如何把alist通过rclone挂载在本地硬盘实现像本地文件一样进行浏览,本篇文章咱们继续,介绍如何安装emby并对媒体进行添加进emby.
emby安装
要安装emby
首先要面临的就是emby
版本选择问题,emby
本身是一个收费软件,但是也有大佬们的破解版本,我这里选择amilys/embyserver
这个版本,可以去docker hub官方地址查看。确认镜像后,下边给出我的docker-compose.yaml
配置文件:
networks:
mynet:
external: true
services:
emby:
image: amilys/embyserver
container_name: emby
restart: unless-stopped
volumes:
- ./config:/config
- /data/movies:/data/movies:rslave
ports:
- 8096:8096
extra_hosts:
- host.docker.internal:host-gateway
networks:
- mynet
network不再多说了,自己创建的一个桥接网络。
端口暴露8096
出去,
emby
的配置文件在/config
目录,把它挂载到本地方便后续进行修改。
另外一个挂载路径就是本地的/data/movies
挂载到容器的/data/movies
目录。本地的/data/movies
其实就是上篇文章通过rclone处理的alist中所有的文件。这里建议设置为一样的路径,方便后续在302播放的时候替换,不会遇到那么多麻烦。
整体目录如下:
root@docker:~/emby# tree -L 2
.
├── config
└── docker-compose.yaml
然后就是启动容器docker compose up -d
进行emby
的配置了。
emby初始化
启动容器后,可以通过ip:8096
来访问刚启动的容器。下边来进行emby
的一些初始化配置,首先是进行语言配置,选择chinese simplified
(简体中文),下一步
设置完语言后就会提示创建用户,根据自己的需求创建用户以及设置用户名和密码。然后继续下一步
之后就会让添加一个媒体库,这里可以先不添加,直接下一步,等完全配置好了之后再去配置媒体库相关的东西
接下来是设置媒体库的偏好语言和地区,根据自己需求英文或者中文
下边是配置远程访问,开启就好了
下边是使用条例,接收继续下一步
终于完成了,点击finish跳转。
经过上边设置,emby就算是初始化好了,接下来就可以进行媒体库添加了。
媒体库
进入到emby后台,找到媒体库菜单,就可以在这里进行添加媒体库了。
添加媒体库时需要整理好分类,是电影、电视节目还是其他,方便emby正确刮削。
根据情况配置上边的选项,配置好后emby就会开始进行刮削,完整后就可以在emby首页看到添加的目录下的所有电影了。截止到现在emby已经可以正确的播放视频了,但是此时播放网盘的内容是会经过搭建alist那台机器,等于是那台机器把媒体内容下载下来,然后送给我们的播放器进行播放,如果alist部署在本地播放倒是什么没什么,反正都要下载下来。如果alist部署在其他vps上,流量消耗是一个比较大的问题。如果是部署在家里但是需要在家庭以外的地方播放,这时候流量也会经过家里然后才到你在外边的设备,播放速度就取决于你的家庭宽带的上行了,一般上行所以都不会太大,所以我们需要配置302重定向,让播放设备直接和网盘进行交互,而alist服务器只是负责给你列出目录树,供我们浏览使用。下边就来讲一下如何进行302播放。
embyExternalUrl实现302播放
本文主要介绍使用embyExternalUrl工具进行302播放。有大佬做了整合,弄了一个docker镜像:MediaLinker,降低了操作的复杂度,并且支持ssl证书,可以根据需求进行配置。docker compose文件内容如下:
services:
medialinker:
container_name: medialinker
image: thsrite/medialinker:latest
restart: unless-stopped
volumes:
- ./data/:/opt/
environment:
- AUTO_UPDATE=true
- SERVER=emby
- NGINX_PORT=8091
network_mode: host
具体环境信息可以看大佬的介绍,我这里使用emby且也不需要SSL,如上是最简单的配置了。启动后,在data目录下会有一个constant.js文件,我们需要改变其中emby、alist的一些配置,需要配置的地方如下图:
根据上图可以看到有7项信息需要填写,主要分为两个大项,一个是emby的配置,一个是alist的配置。下边来详细说一下每个参数的配置。
emby配置
emby需要三个参数,embyhost这个简单,就是我们打开emby的地址,安装的机器ip和docker-compose文件中的端口就可以了。
embyApiKey需要在emby的后台去获取,路径如下,新建一个api密钥,然后填进去就可以了。
mediaMountPath文件中介绍的也比较清楚:
// 挂载工具 rclone/CD2 多出来的挂载目录, 例如将 od,gd 挂载到 /mnt 目录下: /mnt/onedrive /mnt/gd ,那么这里就填写 /mnt
// 通常配置一个远程挂载根路径就够了,默认非此路径开头文件将转给原始 emby 处理
// 如果没有挂载,全部使用 strm 文件,此项填[""],必须要是数组
我们在上边安装alis和emby的时候,两个内部路径都是/data/movies
,那么这个数组中就填/data/movies
.
emby的配置就完成了。
alist配置
host也比较简单,我们怎么访问alist的就怎么写,一般是ip:5244.
alist-token的获取路径如下:
然后是否启用了sign,这个在往alist配置每个网盘的时候,我这边都是有开启的,所以这个参数我需要设置为true.
签名有效期,按照他提供的路径也很容易找到,默认是0,我这里也把他改成12,两边同步。
然后保存constant.js
文件,此时需要再对medialinker
容器进行一次重启,如果不重启,mediaMountPath不生效。
如何判断是否成功了呢?可以查看medialinker的日志,docker compose logs -tf
来查看。如下我在第一次没有重启的情况去播放视频,看到有以下日志,找的还是默认的/mnt路径,并且可以看到我的服务器流量在疯狂的跑下行流量,说明是通过服务器下载后转给我的。
经过对容器进行重启后,再次去播放视频,可以看到以下日志,读取到了我配置的/data/movies.
经过以上就可以愉快的302直接播放云盘中的视频了。希望可以帮到大家。