手机搭建emby服务
分三部分搭建,第一步安装openlist并生成本地strm文件;第二步安装emby服务并添加媒体库;第三部分内外穿透实现公网访问。
步骤一
1. Termux中删除alist
1.1 如果Termux中原安装了alist先删除
1.2 停止 AList 后台进程
1 | pkill -9 alist |
1.3 查找并删除文件
通常文件夹名就叫 alist。你可以输入 ls 查看当前目录下的文件夹。
1 | rm -rf ~/alist |
你可以现在去 Termux 里执行这几条命令试试。
如果在执行 netstat 或者 pgrep 时依然有输出,说明还有残留进程。
1.4 检查是否还有残留的快捷命令:
1 | which alist |
如果返回空行(直接跳到下一行),说明很干净。
如果返回了路径(比如 /data/…/bin/alist),请执行 rm 加上那个路径,例如:rm /data/data/com.termux/files/usr/bin/alist。
最后确认:
输入 ls 查看当前目录,确认没有 alist 相关的文件夹了。
1.5 输入which alist后输出:/data/data/com.termux/files/usr/bin/which: this version of which’ is deprecated; use command -v’ in scripts instead.
/data/data/com.termux/files/usr/bin/alist
看来 AList 还没“搬家”干净,它现在正躲在你的系统指令路径里。
那个输出告诉你了两件事:
AList 在哪: 它位于 /data/data/com.termux/files/usr/bin/alist。
小插曲: which 命令在 Termux 里有点老了,建议以后用 command -v,但这不影响咱们现在的操作。
1.6 继续清理
删除系统路径下的 AList:
1 | rm /data/data/com.termux/files/usr/bin/alist |
再次确认:
1 | command -v alist |
如果这次没有任何输出(直接跳回新的一行),那么恭喜你,AList 已经从你的 Termux 里彻底消失了!
2. Termux中安装openlist
2.1 你想把 OpenList 安装在哪个文件夹里? 通常建议建一个专门的文件夹,方便以后管理。你可以直接运行下面这串命令来创建目录并进入:
1 | mkdir -p ~/openlist && cd ~/openlist |
2.2 更新并升级所有软件包
1 | pkg update && pkg upgrade -y |
2.3 使用curl下载(换个更稳的方法)
1 | curl -L -O https://github.com/OpenListTeam/OpenList/releases/latest/download/openlist-android-arm64.tar.gz |
2.4 解压并运行
1 | tar -zxvf openlist-android-arm64.tar.gz && chmod +x openlist |
2.5 如果下载实在太慢可直接浏览器下载
2.5.1 掐断当前下载:
在手机键盘上按下 Ctrl(Termux 工具栏上的按钮)然后按 C。你会看到光标回到了 ~/openlist $。
2.5.2 清理残余:
为了防止文件损坏,先把刚才下载了一半的文件删掉:
1 | rm openlist-android-arm64.tar.gz |
2.5.3 点击这个链接直接下载到手机:https://github.com/OpenListTeam/OpenList/releases/latest/download/openlist-android-arm64.tar.gz(或者把这个链接贴进你的手机浏览器)。
2.5.4 下载完成后,在 Termux 里输入以下命令把文件从手机下载目录移动过来:
1 | termux-setup-storage |
2.5.5 验证下载是否成功
不管是哪个方法,下载完后输入:
1 | ls -lh |
2.5.6 解压文件
1 | tar -zxvf openlist-android-arm64.tar.gz |
2.5.7 授予运行权限
1 | chmod +x openlist |
2.5.8 启动 OpenList 服务器
1 | ./openlist server |
2.5.9 获取管理员密码
运行命令后,屏幕会飞快地滚动很多日志信息。请在这些信息中仔细寻找下面这一行:
Successfully create admin user, username: admin, password: XXXXXXXX
那个 XXXXXXXX 就是你的随机初始密码。
如果你错过了这一行,或者没记住,别担心:
按 Ctrl + C 停止程序。
输入命令:./openlist admin set 123456(这会把密码强行改为 123456)。
重新输入 ./openlist server 启动。
2.5.10 扫尾工作
既然已经解压成功,那个 47MB 的压缩包就没用了,可以删掉它省点空间:
1 | rm openlist-android-arm64.tar.gz |
3.开启 Termux 的 Wake Lock(唤醒锁)
这是最简单也最直接的方法。它会告诉系统:“哪怕锁屏了,也请给我的 CPU 留一口气”。
操作方法: 下拉你的手机通知栏,找到 Termux 的通知。
点击: 点击通知上的 Acquire Wake Lock。
或者在命令行输入:
1 | termux-wake-lock |
4. 创建本地strm存放目录
1 | # 建立一个在手机下载目录里可见的文件夹 |
5. 登陆openlsit,创建strm存储
6. 索引搜索
第一次需全面索引一次
7. 全局勾选
第二步
emby服务端安装
第三步
内外穿透,使用Cloudflare Tunnel方式安装
1. Termux 官方库里已经自带了 cloudflared(Tunnel 的核心程序),所以安装极其简单,不需要折腾脚本。
在 Termux 里执行:
1 | pkg update -y && pkg install cloudflared -y |
2. 让 Tunnel 认领你的域名
装好之后,我们需要让这台手机和你的 Cloudflare 账号绑定,这样它才能接管你的 363689.xyz。
在 Termux 里输入这行命令:
1 | cloudflared tunnel login |
这个时候,Termux 屏幕上会弹出一长串网址(URL)。 —
你现在的任务:把 Termux 里弹出的那串网址复制下来,丢到你手机或电脑的浏览器里打开。 网页会让你登录 Cloudflare,你选择你的 363689.xyz 域名点授权就行。
3. 创建一条隧道
直接在 Termux 里输入并回车:
1 | cloudflared tunnel create emby_tunnel |
把你的域名绑到隧道上
这一步会自动去 Cloudflare 把 emby.363689.xyz 的解析改成隧道的专用地址,瞬间顶替掉原来那些乱七八糟的IP
1 | cloudflared tunnel route dns emby_tunnel emby.363689.xyz |
给 openlist 绑一个新域名
1 | cloudflared tunnel route dns emby_tunnel olist.363689.xyz |
4. 生成配置文件
现在我们要让这条隧道同时干两份活:既转发 Emby,又转发 openlist。
假设你 openlist 的端口是默认的 5244(如果不是,请把下面代码里的 5244 改成你的实际端口)
1 | CRED_FILE=$(ls ~/.cloudflared/*.json | head -n 1) |
5. 启动隧道
1 | cloudflared tunnel run emby_tunnel |
6.静默启动服务
1 | nohup cloudflared tunnel run emby_tunnel >/dev/null 2>&1 & |
或强行让隧道走传统的 TCP 协议(HTTP2),UDP 容易被系统掐断。
1 | nohup cloudflared tunnel --protocol http2 --config ~/.cloudflared/config.yml run emby_tunnel > ~/tunnel.log 2>&1 & |
1 | cd ~/openlist |
1 | nohup ./openlist server >/dev/null 2>&1 & |
1 | jobs |
附录
一、 Aria2
1.Aria2 终极完美安装脚本
1 | # 1. 杀掉可能在后台带病运行的旧进程,清空旧配置 |
2.在后台绑定 Aria2 (建立通讯)
2.1在你的主力机浏览器里,输入服务器的地址进入 openlist 后台(例如:http://192.168.0.117:5244),并点击底部登录管理后台。
2.2在左侧菜单栏,点击 设置 (Settings)。
2.3在顶部的选项卡里,找到并点击 其他 (Other) 标签页。
2.4往下划,找到关于 Aria2 的设置框,对照着填:
Aria2 URI:填 http://127.0.0.1:6800/jsonrpc (这代表让它找住在自己这台手机里的 Aria2)。
Aria2 密钥:填 xxsky1127 (咱们刚才在代码里写好的暗号)。
2.5填完后,一定要点击底部的 保存 (Save)。
(现在,openlist 已经成功连上底层的 Aria2 苦力了!)
3.把手机本地的“电影放映室”挂载出来
虽然 Aria2 知道要把电影下到 /storage/emulated/0/Movies 这个文件夹里,但咱们还得让 openlist 把这个文件夹显示在网页上,你才能看到。
3.1还在 openlist 的管理后台,点击左侧菜单的 存储 (Storage)。
3.2点击 添加 (Add)。
3.3驱动 选择:本机存储 (Local)。
3.4在弹出的设置页面,填这两个最关键的:
挂载路径:填 /本地高清影院 (或者随便你起个好听的名字,这是在首页显示的文件夹名)。
根文件夹路径:填 /storage/emulated/0/Movies (这是 Aria2 的真实下载老巢,一字不差地复制过去)。
3.5其他的什么都不用管,直接划到最下面点击 添加 (Save)。
4.见证奇迹的终极下载测试!
所有管道都已打通,现在咱们来体验一把“全自动遥控下载”的爽快感:
4.1退出管理后台,回到 openlist 的主页 (Home)。
4.2你会看到首页多了一个名叫 “本地高清影院” 的文件夹,点进去。
4.3在这个文件夹的右下角,你会看到一个 离线下载 (Offline Download) 的按钮(或者类似云朵/箭头的图标)。
4.4点开它,把你在网上找好的任意一个磁力链接(magnet:?xt=…)粘贴进去,点击确定!
接下来会发生什么?
openlist 会立刻把这个链接顺着刚才的暗号发给后台的 Aria2。Aria2 会开始满速疯狂下载。下载完成后,电影文件会自动出现在这个“本地高清影院”的文件夹里!
二、定时任务
1.安装定时任务服务
1 | pkg install cronie -y |
2.脚本
1 | cat > ~/refresh.sh << "EOF" |
3.安装“解析眼” (jq)
1 | pkg install jq -y |
4.赐予执行权限
1 | chmod +x ~/refresh.sh |
5.定时服务在后台活着
1 | crond |
6.手动测试
1 | ~/refresh.sh |
7.把脚本加入定时任务(这一步会打开一个文本编辑器)
1 | crontab -e |
随后进入编辑模式粘贴以下代码:
1 | 0 * * * * /data/data/com.termux/files/home/refresh.sh |
按Ctrl+O 和 Ctrl+X保存退出。
或者直接盲写强插大法
1 | echo "0 * * * * /data/data/com.termux/files/home/refresh.sh" > mycron.txt |
(这三行代码的意思是:在外面建个文本把任务写好 -> 直接强行塞给 crontab 系统 -> 销毁临时文本。干净利落,全程不需要打开任何编辑器!)
8.检查写成功没
1 | crontab -l |
如果屏幕上成功显示出 0 * * * * /data/data/com.termux/files/home/refresh.sh 这一行字,那就说明定时任务已经完美生效了!
9.定时分目录分时间扫描脚本
9.1 改造脚本
1 | cat > ~/refresh.sh << "EOF" |
或者
1 | cat > /data/data/com.termux/files/home/refresh.sh << "EOF" |
9.2终极排班表
1 | cat > mycron.txt << "EOF" |
9.3立刻单独扫一下动漫
1 | ~/refresh.sh "/177/177-动漫" |
10.电报/微信媒体通知
10.1.Termux 装上“翻译工具”
回到你的 Termux 命令行(~ $ 界面),依次执行下面两行命令:
1 | pkg install python -y |
1 | pip install flask requests |
(这会给系统装上 Python 和专门用来建网站接收数据的 Flask 工具包,大概需要一两分钟。)
10.2.写入咱们的“翻译官”核心代码
监控播放与入库通知
1 | cat > ~/tg_bridge.py << "EOF" |
10.3.静默启动
1 | nohup python ~/tg_bridge.py > /dev/null 2>&1 & |
或启动
1 | python ~/tg_bridge.py |
杀掉进程
1 | pkill -f tg_bridge.py |
或
1 | pkill -9 -f tg_bridge.py |
1 | pkill -9 python |
10.4Emby通知设置
设置-admin首选项-通知-添加通知-webhooks
名称:电报/微信入库通知
网址:http://127.0.0.1:8000/emby
请求内容类型:application/json
勾选媒体库
自动转存
1.初始化 Termux 环境
打开你的 Termux,把这三行命令依次复制进去回车。这步是为了装好 Python 和需要的底层运行库(如果提示 [Y/n],直接敲 y 回车):
1 | pkg update -y && pkg upgrade -y |
2.Termux安装必要的 Python 引擎库
1 | pip install flask requests |
3.库出错
这个 ModuleNotFoundError: No module named ‘Crypto’ 是 Python 界一个极其经典且烦人的“坑”,几乎所有第一次折腾加密库的人都会踩中
原因很简单:代码里调用的名字叫 Crypto,但它对应的现代库其实叫 pycryptodome。有时候 Python 环境会犯傻,或者之前残留了一些废弃的老库(比如老古董 pycrypto),导致它“认错人”了
直接复制下面这两行命令,依次在 Termux 里回车(第一行可能会提示未找到某些库,不用管,直接让它执行完):
1 | pip uninstall crypto pycrypto pycryptodome -y |
现在冒出来的这个 No module named ‘schedule’ 报错,是因为咱们最开始那步批量装库的时候,可能因为网络波动中断了,导致 schedule(用来做定时任务的库)没装上。
咱们现在就玩“打地鼠”,它缺啥咱们补啥!为了防止等会儿它再报别的库没装,咱们干脆把脚本需要的剩下几个第三方库一次性全补齐。
直接复制这行回车:
1 | pip install schedule python-dotenv requests |
4.建立专属工作台与配置文件
1 | # 1. 创建专属文件夹并进去 |
执行完 nano sys.env 后,屏幕会变成黑底白字的编辑器。把下面这段内容修改成你自己的真实信息后,粘贴进去(注意等号两边不要有空格):
1 | # 你的天翼云盘账号和密码 |
填完后,按 Ctrl + O(字母O),回车保存;然后按 Ctrl + X 退出。
5.写入终极神级脚本
5.1在电脑中新建文件auto_189.py内容如下:
1 | import os |
5.2电脑文件传到手机storage/downloads目录下
5.3复制脚本
1 | cp ~/storage/downloads/auto_sync.py ~/auto_sync.py |
6.点火升空 & 日常操作
准备工作全部完成!现在我们要让它在 Termux 后台静默长驻。
敲下这行命令启动:
1 | nohup python auto_189.py > run.log 2>&1 & |
就这么简单!现在你可以把 Termux 切到后台了。
7.其它有可以出现的问题
7.1杀掉后台的“哑巴”进程
1 | pkill -f auto_189.py |
7.2在前台“裸奔”启动
1 | python auto_189.py |
7.3.清理脏数据,正式接客
在 Termux 里直接执行这两行命令(先清空数据库,再重新启动):
1 | # 1. 强制清空订阅数据库和历史记录(把脏数据扬了) |
8.订阅格式
8.1核心万能公式:
[动作] [你的网盘保存路径] [大佬的分享链接(?pwd=密码)] [狙击过滤词] [#休眠标签]
8.2无密码订阅:
订阅 /177-电视剧/狂飙 [https://cloud.189.cn/t/xxxxxx]
8.3带密码订阅(链接屁股后加 ?pwd=密码):
订阅 /177-电视剧/狂飙 [https://cloud.189.cn/t/xxxxxx?pwd=abcd]
8.4静默绑定
指令(把“订阅”换成“绑定”):
绑定 /177-电视剧/狂飙 [https://cloud.189.cn/t/xxxxxx?pwd=abcd]
(机器人会提示:已将 N 个旧文件标记为已存。)
8.5精准狙击
指令(在最后空一格,写上过滤词):
绑定 /177-动漫/神墓/Season 03 [https://cloud.189.cn/t/xxxxxx] S03
(如果资源命名是中文,就把 S03 换成 第三季)
8.6智能休眠(告别无效巡逻,防封神技)
适用场景:动漫更新极其规律,你想让它抓完一集后立刻吃安眠药,节省 API 资源。
- 标签说明: #周更 (抓完睡6天) / #双更 (抓完睡3天)。没打标签的动漫默认睡 2 天,电视剧默认睡 12 小时。
- 指令(随便加在结尾即可):
8.7究极缝合怪(全功能火力全开)
适用场景:带密码 + 只要第三季 + 周更动漫 + 不下旧文件。
终极指令:
绑定 /177-动漫/神墓/Season 3 https://cloud.189.cn/t/xxxxxx?pwd=abcd S03 #周更
绑定 /177-动漫/2602/天庭 https://cloud.189.cn/t/YRnIjmAZZZre?pwd=ea12 #周更
注意:订阅1-9或绑定1-9对应Season 1-9文件夹并锁定过滤S01-09
8.8拔管取消
适用场景:剧追完了,或者烂尾不想看了。
无脑取消法:
直接把你当时发送的那条超长的指令复制下来,把开头的 绑定 或 订阅 改成 取消订阅 发过去。
取消订阅 /177-动漫/2602/天庭 https://cloud… (后面的它会自动忽略)
精准取消法:
取消订阅 /177-动漫/2602/天庭
7.9老鸟进阶 Tips:
如何修改任务?
如果你发现忘了加 #周更 标签,或者密码换了,不需要先取消!直接用正确的格式再发一遍 绑定 指令(路径保持不变),它就会极其聪明地自动覆盖旧配置。
它的作息规律是什么?
动漫: 每天 10点-12点 & 18点-23点 活跃。
电视剧: 每天 18点-23点 活跃。
(非活跃期和 CD 休眠期,它会彻底装死,绝对安全!)
9.所有脚本启动
1 | cat > ~/start.sh << 'EOF' |
1 | chmod +x ~/start.sh |
1 | ~/start.sh |