docker dongguaTV(聚合媒体)建个人影院
·
之前有个百视通R3300L机顶盒安装了armbian,因为性能孱弱,只能做些简单的任务,所以做一个聚合媒体影院,要求不高的话,体验也是不错的。
1、确定你的机顶盒安装了docker和portainer。
2、准备工作:
#建立文件夹
mkdir -p docker/donggua/cache/images
建一个空的数据库文件
touch docker/donggua/cache.db
nano docker/donggua/db.json
#复制以下内容进去,ctrl+O保持,ctrl+X退出
{
"sites": [
{
"key": "haohua",
"name": "豪华资源",
"api": "https://hhzyapi.com/api.php/provide/vod/",
"active": true
},
{
"key": "kuaiche",
"name": "快车资源",
"api": "https://caiji.kuaichezy.org/api.php/provide/vod/",
"active": true
},
{
"key": "yingshigongchang",
"name": "影视工厂",
"api": "https://cj.lziapi.com/api.php/provide/vod/",
"active": true
},
{
"key": "yayazy_duck",
"name": "鸭鸭资源",
"api": "https://cj.yayazy.net/api.php/provide/vod/",
"active": true
},
{
"key": "bubugao",
"name": "步步高资源",
"api": "https://api.yparse.com/api/json",
"active": true
},
{
"key": "hongniu",
"name": "红牛资源",
"api": "https://www.hongniuzy2.com/api.php/provide/vod/",
"active": true
},
{
"key": "niuniu",
"name": "牛牛点播",
"api": "https://api.niuniuzy.me/api.php/provide/vod/",
"active": true
},
{
"key": "xinlang",
"name": "新浪点播",
"api": "https://api.xinlangapi.com/xinlangapi.php/provide/vod/",
"active": true
},
{
"key": "guangsu",
"name": "光速资源",
"api": "https://api.guangsuapi.com/api.php/provide/vod/",
"active": true
},
{
"key": "yayazy_duck2",
"name": "丫丫点播",
"api": "https://cj.yayazy.net/api.php/provide/vod/",
"active": true
},
{
"key": "uku",
"name": "U酷资源",
"api": "https://api.ukuapi.com/api.php/provide/vod/",
"active": true
},
{
"key": "ckzy",
"name": "CK资源",
"api": "https://ckzy.me/api.php/provide/vod/",
"active": true
},
{
"key": "zyku_1080",
"name": "1080资源库",
"api": "https://api.1080zyku.com/inc/api_mac10.php/",
"active": true
},
{
"key": "piaoling",
"name": "飘零资源",
"api": "https://p2100.net/api.php/provide/vod/",
"active": true
},
{
"key": "shandian",
"name": "閃電资源",
"api": "https://sdzyapi.com/api.php/provide/vod/",
"active": true
},
{
"key": "jinying",
"name": "金鹰资源",
"api": "https://jyzyapi.com/api.php/provide/vod/",
"active": true
},
{
"key": "huya",
"name": "虎牙资源",
"api": "https://www.huyaapi.com/api.php/provide/vod/",
"active": true
},
{
"key": "suoni",
"name": "索尼资源",
"api": "https://suoniapi.com/api.php/provide/vod/",
"active": true
},
{
"key": "subo",
"name": "速播资源",
"api": "https://subocaiji.com/api.php/provide/vod/",
"active": true
},
{
"key": "wolong2",
"name": "卧龙资源2",
"api": "https://collect.wolongzyw.com/api.php/provide/vod/",
"active": true
},
{
"key": "maotai",
"name": "茅台资源",
"api": "https://caiji.maotaizy.cc/api.php/provide/vod/",
"active": true
},
{
"key": "liangzi",
"name": "量子资源站",
"api": "https://cj.lziapi.com/api.php/provide/vod/",
"active": true
},
{
"key": "ikun",
"name": "iKun资源",
"api": "https://ikunzyapi.com/api.php/provide/vod/",
"active": true
},
{
"key": "wangwang",
"name": "旺旺短剧",
"api": "https://wwzy.tv/api.php/provide/vod/",
"active": true
},
{
"key": "wujin",
"name": "无尽资源",
"api": "https://api.wujinapi.me/api.php/provide/vod/",
"active": true
},
{
"key": "baiduyun",
"name": "百度云资源",
"api": "https://api.apibdzy.com/api.php/provide/vod/",
"active": true
},
{
"key": "yinghua",
"name": "樱花资源",
"api": "https://m3u8.apiyhzy.com/api.php/provide/vod/",
"active": true
},
{
"key": "zuida",
"name": "最大资源",
"api": "https://api.zuidapi.com/api.php/provide/vod/",
"active": true
},
{
"key": "modu",
"name": "魔都资源",
"api": "https://www.mdzyapi.com/api.php/provide/vod/",
"active": true
},
{
"key": "mozhuo",
"name": "魔爪资源",
"api": "https://mozhuazy.com/api.php/provide/vod/",
"active": true
},
{
"key": "douban",
"name": "豆瓣资源",
"api": "https://dbzy.tv/api.php/provide/vod/",
"active": true
},
{
"key": "wolong",
"name": "卧龙资源",
"api": "https://wolongzyw.com/api.php/provide/vod/",
"active": true
},
{
"key": "zy360",
"name": "360资源",
"api": "https://360zy.com/api.php/provide/vod/",
"active": true
},
{
"key": "tianya",
"name": "天涯资源",
"api": "https://tyyszy.com/api.php/provide/vod/",
"active": true
},
{
"key": "baofeng",
"name": "暴风资源",
"api": "https://bfzyapi.com/api.php/provide/vod/",
"active": true
},
{
"key": "dytt",
"name": "电影天堂资源",
"api": "https://caiji.dyttzyapi.com/api.php/provide/vod/",
"active": true
},
{
"key": "ruyi",
"name": "如意资源",
"api": "http://cj.rycjapi.com/api.php/provide/vod/",
"active": true
},
{
"key": "jisu",
"name": "极速资源",
"api": "https://jszyapi.com/api.php/provide/vod/",
"active": true
},
{
"key": "feifan",
"name": "非凡影视",
"api": "http://ffzy5.tv/api.php/provide/vod/",
"active": true
}
]
}
3、很多博主都是按照dongguaTV的官方代码修改一下就运行的,这样导致很多问题,特别是刮削问题。
他们用类似以下的代码:
services:
donggua-tv:
image: ghcr.io/ednovas/dongguatv:latest
container_name: donggua-tv
ports:
- "3000:3000" # 冒号左侧自行更改
environment:
- TMDB_API_KEY=1234567890abcdefghijklmn # 替换成你的TMDB的密钥
- ACCESS_PASSWORD=123456 # 自行更改
- CACHE_TYPE=sqlite
# - TMDB_PROXY_URL=https://tmdb-proxy.your-name.workers.dev
volumes:
- ./docker/donggua/db.json:/app/db.json # 存储所有的采集源配置信息
- ./docker/donggua/cache.db:/app/cache.db # 数据库文件
- ./docker/donggua/cache/images:/app/public/cache/images
restart: always
以上代码应用中有一些痛点:
a、在ghcr.io拉取镜像比较慢,应该用ghcr.nju.edu.cn加速。
b、虽然代码里设定了TMDB的刮削配置,但是由于TMDB网站受到DNS污染,导致并不能顺利刮削。
c、有博主搞了nginx代理的方案,有点麻烦,不适合小白,而且多了个docker nginx的容器,本来机顶盒1G内存已经捉襟见肘了,没必要浪费资源。
所以我针对以上痛点做了一些改良。
4、改良方案一:
利用portainner的stack创建容器,这个方案在x86 amd64架构是可行的。但是在armbian bullseye运行会导致hosts不完整,不知什么原因,希望有大神解释一下。
注意:由于不需要用TMDB的代理,所以注释了以下两行
# - TMDB_API_KEY=1234567890abcdefghijklmn # 替换成你TMDB的密钥:
和
# - TMDB_PROXY_URL=https://tmdb-proxy.your-name.workers.dev
而且密码需要根据实际情况修改:
- ACCESS_PASSWORD=123456 # 自行更改
正式代码如下:
services:
donggua-tv:
image: ghcr.nju.edu.cn/ednovas/dongguatv:latest
container_name: donggua-tv
ports:
- "3000:3000" # 冒号左侧自行更改
environment:
# - TMDB_API_KEY=1234567890abcdefghijklmn # 替换成你TMDB的密钥
- ACCESS_PASSWORD=123456 # 自行更改
- CACHE_TYPE=sqlite
# - TMDB_PROXY_URL=https://tmdb-proxy.your-name.workers.dev
volumes:
- ./docker/donggua/db.json:/app/db.json # 存储所有的采集源配置信息
- ./docker/donggua/cache.db:/app/cache.db # 数据库文件
- ./docker/donggua/cache/images:/app/public/cache/images
extra_hosts:
- "api.tmdb.org:18.161.111.105"
- "api.tmdb.org:18.161.111.115"
- "api.tmdb.org:18.161.111.96"
- "api.themoviedb.org:3.160.188.44"
- "api.themoviedb.org:3.160.188.68"
- "api.themoviedb.org:3.160.188.49"
- "api.themoviedb.org:3.160.188.33"
restart: always
注意:该方案在armbian bullseye不通过。
5、改良方案二:
推荐该方案
直接运行以下代码:
docker run -p 3000:3000 \
--name dongguatv \
--restart always \
-v ~/docker/donggua/db.json:/app/db.json \
-v ~/docker/donggua/cache.db:/app/cache.db \
-v ~/docker/donggua/cache/images:/app/public/cache/images \
#-e TMDB_API_KEY=1234567890abcdefghijklmn \
-e ACCESS_PASSWORD=123456 \
--add-host='api.tmdb.org:18.161.111.105' \
--add-host='api.tmdb.org:18.161.111.122' \
--add-host='api.tmdb.org:18.161.111.115' \
--add-host='api.tmdb.org:18.161.111.96' \
--add-host='api.themoviedb.org:3.160.188.44' \
--add-host='api.themoviedb.org:3.160.188.68' \
--add-host='api.themoviedb.org:3.160.188.49' \
--add-host='api.themoviedb.org:3.160.188.33' \
-d ghcr.nju.edu.cn/ednovas/dongguatv:latest
该方案在armbian bullseye下通过。
更多推荐
所有评论(0)