该教程不再更新,最新的安装方式,去xiaoya群寻找。

此篇内容 由@duckeaty 收集整理

因近日全家桶更新了,1和2未更新,可以自行按新的方法安装,推荐DDS-Derek的xiaoya安装脚本:

1
bash -c "$(curl -sL https://ddsrem.com/xiaoya_install.sh)"

新增脚本,同步library.db,保留用户播放记录,自动更新用户策略。并添加计划任务。只需执行一次。

这个会自动判断EMBY同步后启动完成,并自动更新用户策略。之前的计划任务(同步library.db和更新用户策略)可以删掉,用这个自动生成。

1
2
bash -c "$(curl -sL http://xiaoya.smder.com/xiaoya_emby_config_library_update.sh)"

全家桶安装

安装命令


(先看下面的 安装步骤)

1
bash -c "$(curl http://docker.xiaoya.pro/emby_plus.sh)" -s /媒体库目录

如果配置文件目录不在 /etc/xiaoya,那么要传递第2个参数,指明配置文件目录所在

1
bash -c "$(curl http://docker.xiaoya.pro/emby_plus.sh)" -s /媒体库目录   /配置文件目录

注意1:/媒体库目录 和/配置文件目录 是你要自己设定的,其中/配置文件目录 可以省略用默认设置
注意2:全家桶安装时间会比较长,中间有一步替换docker_address的时候没有提示,根据机器性能,时间在1分钟到半小时都有可能,耐心等。

Emby的登入账号:
用户名:xiaoya
密码:1234

安装步骤


(不要跳跃,老老实实一步一步走)

  • 确保xiaoya升级到了1031版本,同时如果是自己手动配置的容器,那么记得要加上 2345->2345,2346->2346 这2个端口映射

  • 先确保xiaoya正常运行,去xiaoya网页的 /元数据 目录点击一个MP4文件,看看是否正常,这个是所有后续的前提

  • 选择一个有足够空间的目录(挂载硬盘或U盘都可以,确保有160G空余的空间)

  • 确保 docker_address.txt 配置正确,指向xiaoya的地址,这个文件在上面你自己要设置 /配置文件目录 中。

  • 如果自己已经安装了emby,请停止运行,修改端口,避免和8096冲突,自己的emby可以修改为8097,不然会因为端口冲突导致安装失败

  • 执行一键安装全家桶命令

  • 安装好后,重启xiaoya一次

  • 通过 xiaoya的2345端口 去连接,尽量用客户端或者三方播放器,不要用网页,因为浏览器解码能力弱,容易出现“不兼容的流”之类错误


注意1:
docker_address.txt问题:如果xiaoya是hostmode模式,可以写http://127.0.0.1:6789, 其余的是http://你自己的IP:5678, 建议xiaoya用hostmode模式,不容易出错),如果后面发现填错了,可以以root用户在命令行下进入 /媒体库目录 ,然后输出以下指令重新修改,不用重装:
find . -type f -name “*.strm” -exec sed -i ‘s/原来文件里写错的IP地址/新的正确的IP地址/g’ {} ;

注意2:关于端口
默认的8096是emby自身的端口,使用时不会经过xiaoya反代,所以看片时你的机器会把需要的片子先拉到本地再输出给你的emby播放器,这样会占用机器流量(内网无所谓,外网就很伤),好处是可以使用emby的转码功能,可以网页播放和减少外网设置流量。
2345端口是xiaoya的反代端口,这时xiaoya会自动代理你在 /配置文件目录/emby_server.txt 中填写的emby地址,这时不能使用emby转码,好处是片子不会本地中转,节约本地流量(外网时是直接从网盘拉取播放,不会经本地emby中转),建议用emby客户端或使用第三方播放器,不要网页直接播放,会有大量片子不能正常播放。

同步更新:


建议使用resilio-sync,以下是安装:
安装 resilio:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
docker run -d \
-m 4096M \
--cpus=2 \
--name=resilio \
-e PUID=0 \
-e PGID=0 \
-e TZ=Asia/Shanghai \
-p 8888:8888 \
-p 55555:55555 \
-v /etc/xiaoya/resilio:/config \
-v /etc/xiaoya/resilio/downloads:/downloads \
-v /媒体库目录:/sync \
--restart=always \
lscr.io/linuxserver/resilio-sync:latest

注意1:
如果机器非X86架构,比如ARM之类的,安装大概率会报错,这时删掉上面安装命令的第3行:–cpus=2 \就可以了。如果内存小于4G,建议把第2行中的4096数字改为你内存的一半,这个自己看着办吧。

注意2:
自己根据自己实际情况,调整最大内存使用量,CPU核心使用限制和媒体库目录(也就是映射的 /sync),如果觉得会疯狂读写硬盘,那么还可以加上这个参数
–device-write-iops /dev/sda:30
也就是限制对 /dev/sda 这个磁盘一秒钟写入的操作不超过30次,具体数值根据你的接口和硬盘性质自己调整


以下为更新链接:

/每日更新/电视剧

BHB7NOQ4IQKOWZPCLK7BIZXDGIOVRKBUL

/每日更新/电影

BCFQAYSMIIDJBWJ6DB7JXLHBXUGYKEQ43

/电影/2023

BGUXZBXWJG6J47XVU4HSNJEW4HRMZGOPL

/纪录片(已刮削)

BDBOMKR6WP7A4X55Z6BY7IA4HUQ3YO4BH

config

BHKGO66XO6IE6JMWLUYXQWT4WCMRSEJV5


注意:
config要打开“选择性同步“开关,在导入链接时选取,然后直接暂停,进入设置选择要同步的内容如下:
/cache
/metadata
/data/library.db
/data/library.db-shm
/data/library.db-wal
总共是2个目录和3个文件。这样更新时不会破坏你emby的设置和用户内容,包括用户名,观看记录等等。

无人值守更新


更新emby的library.db数据库,做到完全自动化

以root用户在命令行输入:
crontab -e
在最下方加入以下2行内容:

1
2
30 6 * * * /usr/bin/docker stop emby
0 7 * * * /usr/bin/docker start emby

然后ctr+x保存
上面现行的计划任务是在早上6点30关闭emby,这时resilio会同步library.db*这几个数据库文件,然后在7点重新开启emby(3个数据库文件大概3个多G,半小时够了,如果带宽小,可以把间隔时间增加)。


另一种方法(更不容易出错,但更麻烦)

  1. 在 /媒体库目录 下新建一个config_data_sync目录

  2. 然后在resilio中断开原来的config项(如果上面没设置就重新设置就好),目录选择你同新建的config_data_sync,同上选择性更新cache,metadata,data/library.db共2个目录1个文件。

  3. 在resilio里设置好的config_data_sync上右键,选择“Sync local folders…”,在文件夹位置那选择 config,选择性更新打开。只同步cache,metadata这2个目录。

  4. 计划任务(debian举例,其它系统自行摸索吧,软路由系统或群晖的话一般直接有地方设置):
    命令行下输入:
    crontab -e
    然后在最下面增加:

1
30 6 * * * docker stop emby && cp -f /xiaoya_data/config_data_sync/data/library.db /xiaoya_data/config/data/ && docker start emby

然后ctr+x保存。

更新:只同步library.db,另2个是临时文件,同步后可能会导致500错误之类的。

自动清理网盘缓存


建议用模式0,可以设定为早上6点执行

以下为群里转发:可以参考最下面的方法

一劳永逸的 小雅 转存 清理 工具(20230801更新:支持新版阿里云。支持TG推送功能,支持自动领取签到奖励功能感谢gavin liu提供的脚本,支持实时清理,支持小雅镜像定时重启和定时更新,支持多个阿里云盘签到功能,建议模式3或模式5)

模式0:每天自动清理一次。如果系统重启需要手动重新运行或把命令加入系统启动。

1
bash -c "$(curl -s https://xiaoyahelper.zngle.cf/aliyun_clear.sh | tail -n +2)" -s 0 -tg

模式1:一次性清理,一般用于测试效果。

1
bash -c "$(curl -s https://xiaoyahelper.zngle.cf/aliyun_clear.sh | tail -n +2)" -s 1 -tg

模式2:已废弃,不再支持

模式3:创建一个名为 xiaoyakeeper 的docker定时运行小雅转存清理并升级小雅镜像

1
bash -c "$(curl -s https://xiaoyahelper.zngle.cf/aliyun_clear.sh | tail -n +2)" -s 3 -tg

模式4:同模式3

模式5:与模式3的区别是实时清理,只要产生了播放缓存一分钟内立即清理。签到和定时升级同模式3

1
bash -c "$(curl -s https://xiaoyahelper.zngle.cf/aliyun_clear.sh | tail -n +2)" -s 5 -tg

其它模式:也可以把脚本下载下来自己魔改。

签到功能说明:
1、执行时机和清理缓存完全相同
2、可以手动创建/etc/xiaoya/mycheckintoken.txt,定义多个网盘签到的32位refresh token,每行一个,不添加文件就是默认小雅转存的网盘签到。
3、自动刷新/etc/xiaoya/mycheckintoken.txt、/etc/xiaoya/mytoken.txt(可能可以延长refresh token时效,待观察)

关于模式0/3/4/5定时运行的说明:
1、默认从运行脚本的下一分钟开始,每天运行一次
2、运行的时间也可以通过手动创建/etc/xiaoya/myruntime.txt修改,比如06:00,18:00就是每天早晚6点各运行一次

关于自动升级:
1、定时升级的命令保存在/etc/xiaoya/mycmd.txt中,删除该文件变成定时重启小雅
2、完成清理和签到后自动执行/etc/xiaoya/mycmd.txt中的命令,该文件中的内容默认升级小雅镜像,可以修改该文件改编脚本的行为,不建议修改。

关于tg推送:
所有模式加上-tg功能均可绑定消息推送的TG账号,只有第1次运行需要加-tg参数

问题反馈:联系群里的heiheigui

方法如下:
如果有翻墙环境,可以联动telegram做通知,如果没有就忽略。下面会具体说明

1.设置定时时间:
去/配置文件目录(默认为/etc/xiaoya/)目录中输入以下:
nano myruntime.txt
如果有内容先清掉,没有输入以下内容:
06:00
然后ctr+x保存

2.第一次运行
有翻墙环境并需要telegram通知运行以下命令:
bash -c “$(curl -s https://xiaoyahelper.zngle.cf/aliyun_clear.sh | tail -n +2)” -s 0 -tg
然后去telegram找到xiaoyahelper_bot获取码并填入
无翻墙环境或不需要telegram通知运行以下命令:
bash -c “$(curl -s https://xiaoyahelper.zngle.cf/aliyun_clear.sh | tail -n +2)” -s 0

3.设置开机自动启动(以debian为例,其它系统自行设置,如果是软路由系统比如istoreos,openwrt之类的可以在路由界面增加一行开机启动项”bash -c “$(curl -s https://xiaoyahelper.zngle.cf/aliyun_clear.sh | tail -n +2)” -s 0“就好了):
debian下:
nano /etc/rc.local
在最后exit 0的上面增加以下内容:
bash -c “$(curl -s https://xiaoyahelper.zngle.cf/aliyun_clear.sh | tail -n +2)” -s 0

emby端口禁用8096


如果2345端口客户端使用没问题就不要用这一步
(如果只使用2345端口,并且是使用客户端的情况下,需要屏蔽掉8096端口,因为客户端在下次启动时会自动设置为8096端口,就很烦):
命令行下输入以下内容:

(先看下面的注意事项,本步如果不懂iptables,请严格按照方法执行,很容易出错。)

1
2
3
4
iptables -I INPUT -p tcp --dport 8096 -j DROP 
iptables -I INPUT -p tcp -s 127.0.0.1 --dport 8096 -j ACCEPT
ip6tables -I INPUT -p tcp --dport 8096 -j DROP
ip6tables -I INPUT -p tcp -s fd58::/64 --dport 8096 -j ACCEPT

注意1:其中8096为你需要屏蔽的端口号,127.0.0.1是你emby的IP地址(如果是host模式,直接用127.0.0.1就可以了)
注意2:第4行fd58为你本地的IPV6内网地址的开头字段,需要自己在路由的lan口去确认
注意3:以上2个注意事项一定要根据你自己的实际情况来改。
注意4:以上命令不能重复执行,只能一次,并且这4行的顺序不能改动。如果出错,请重启重新设置。

以上命令输完后,请自行测试,如果没有问题了进行下一步设置开机自启:
命令行(debian为例,其它的参考上面 5.自动清理网盘缓存 中的开机自启设置):
nano /etc/local
在最下面exit 0上面增加上述你已经测试好没问题的4行命令。
ctr+x保存。

重启,测试无问题,OK。(有问题请去掉上面4行开机自启动项,重启后重新设置)
如果 5.自动清理网盘缓存 和 6.emby端口禁用8096都需要,改完的rc.local是这样的:

/etc/rc.local 这个是文件名,以下线中间的是内容:

1
2
3
4
5
6
7
8
#!/bin/bash
iptables -I INPUT -p tcp --dport 8096 -j DROP
iptables -I INPUT -p tcp -s 127.0.0.1 --dport 8096 -j ACCEPT
ip6tables -I INPUT -p tcp --dport 8096 -j DROP
ip6tables -I INPUT -p tcp -s fd58::/64 --dport 8096 -j ACCEPT
cd /root
bash -c "$(curl -s https://xiaoyahelper.zngle.cf/aliyun_clear.sh | tail -n +2)" -s 0
exit 0