admin 管理员组文章数量: 887018
一、写在前面
折腾历程
本人49年入国军,折腾的较晚。开始懵懂的玩Alist,在Padavan老毛子上装Alist, 知道有小雅以后又在电视盒子Armbian上装Alist+小雅。
盒子百兆口+usb供电不足,移动硬盘总掉盘,然后我又换到瘦客户机CentOS。
接下来,小雅的不稳定,让我有了忧患意识。用PVE,搞了几个LXC,又是备份又是快照的。还多开了小雅,反正1个坏了,用另外一个就好了。再坏,恢复备份。
最近小雅作者说流量扛不住了,把小雅的关键更新文件(version.txt,tvbox.zip等)放到了国外服务器。于是乎大家又开始搞科学上网用小雅。
前几天,小雅作者自己也承认,容器启动动不动就会出问题,于是给出了新的解决方案。个人感觉算是告一段落了。
无奈最阿里云api接口收费搞的沸沸扬扬。就感觉一切刚刚踏上正轨,就要结束了一样。但心中那团火不灭,总想着还能给大家带来点余热,索性分享出来,大家且用且珍惜吧。
本文包含的和不包含的
那些全家桶,tvbox,infuse等等,都是锦上添花的。看大家喜好。我本人因为没需求,所以就没折腾。想看这部分内容的朋友可以滑走了,别喷我就行。
我只想跟大家说说我理解的工作原理,心得,还有个人有限经验。最起码,能保证基础的东西稳定,可靠,好用。希望真正解决大家的问题。
二、知己知彼百战百胜 - 我来用大白话讲工作原理
小雅做了什么事儿? 简单说,她用爬虫把网上资源都搜刮来以后,整合到一起了。所以你会发现,一旦某些不稳定的共享资源取消了,小雅里面也就消失或者报错了。
你使用小雅的原理:小雅上的资源,你如果点开观看,小雅会做如下事情:
1.取得该文件实际保存地址
2.把文件作为分享,保存在你的阿里云盘分享目录中。
3.你播放的时候,其实是在播放自己网盘里面刚刚保存的文件。
所以,小雅没存东西,她只是把资源的路径整合在一起,然后按需保存文件到你的网盘供你观看。
那么问题来了:
1.我的网盘没那么大,保存那么多东西装不下怎么办?
2.资源列表咋更新?
3.为啥启动后只有版本号?
4.为啥我三要素都是对的,还是启动失败?
5.为啥我这报错无法获取version文件
我们一 一解答。
为啥这么受欢迎?高清,免费,没广告,日更,大而全,谁不喜欢?
1.安装四部曲之一:安装小雅容器
网上教程很多,不赘述,具体看这里: 如何设置xiaoya的docker (notion.site)
提前准备好token,refreshtoken,共享文件夹folderid,一个命令搞定。群晖图形化安装,网站上也详细介绍了。
然后一键安装
bash -c "$(curl http://docker.xiaoya.pro/update_new.sh)"
如果是用host模式安装,则用
bash -c "$(curl http://docker.xiaoya.pro/update_new.sh)" -s host
划重点: 这是小雅容器的安装,基础的基础。
安装好以后,你能看到多了一个xiaoya容器
这时候,访问你的 ip:5678 就可以进入小雅了。 想套娃到你的Alist中,请参考我之前的文章:
这该死的Alist,把我的所有家当都收进去了!----Alist使用技巧之基础篇
一个Alist你还能玩出花来?-- Alist使用技巧之进阶篇
2.安装四部曲之二:设置小雅容器定时重启,更新资源列表
有人服务器,比如NAS不是24小时开机,而是每天开关机,那这步忽略吧。
linux 基本都一样 crontab -e
添加一行:(我每天凌晨2点自动重启xiaoya容器,更新资源列表。大家酌情修改)
0 2 * * * docker restart xiaoya
Armbian 需要重启crontab服务
群晖更简单,定时任务添加一个就可以了。
3.安装四部曲之三 -- 安装 xiaoyakeeper。
干啥用的?
1. 如上所说,存到你网盘里的视频文件,可以按需自动清理
2.定期自动更新小雅容器
一劳永逸的 小雅 转存 清理 工具
模式0:每天自动清理一次。如果系统重启需要手动重新运行或把命令加入系统启动。
bash -c "$(curl -s https://xiaoyahelper.ddsrem/aliyun_clear.sh | tail -n +2)" -s 0 -tg
模式1:一次性清理,一般用于测试效果。
bash -c "$(curl -s https://xiaoyahelper.ddsrem/aliyun_clear.sh | tail -n +2)" -s 1 -tg
模式2:已废弃,不再支持
模式3:创建一个名为 xiaoyakeeper 的docker定时运行小雅转存清理并升级小雅镜像
bash -c "$(curl -s https://xiaoyahelper.ddsrem/aliyun_clear.sh | tail -n +2)" -s 3 -tg
模式4:同模式3
模式5:与模式3的区别是实时清理,只要产生了播放缓存一分钟内立即清理。签到和定时升级同模式3
bash -c "$(curl -s https://xiaoyahelper.ddsrem/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参数
我个人推荐模式5,完全不占用自己的网盘空间,不会因为空间满了无法播放而报错。后面的-tg 对我来说没啥用,所以我也干掉了。
bash -c "$(curl -s https://xiaoyahelper.ddsrem/aliyun_clear.sh | tail -n +2)" -s 5
安装好以后,多了个xiaoyakeeper 容器,放那里就可以了,不用管,它会默默的工作。
验证下效果,播放个文件,你就看到它帮马上帮你清理掉,网盘干干净净。
4.安装四部曲之四 -- 添加自动下载关键文件定时任务
这是最新的,站内似乎还没人提到过哟
添加定时任务,每小时定时拉取关键资源文件,保证容器每次启动成功。
有时各种原因会导致启动时获取数据包连接不畅顺,为了启动时更顺畅,可以试试一键更新一下,我在update_new.sh脚本里添加了一个目录映射 -v /etc/xiaoya/data:/www/data
执行,如果xiaoya配置默认路径是 /etc/xiaoya 那么 -s 的参数可以忽略
bash -c "$(curl http://docker.xiaoya.pro/update_data.sh)"
包含了:
1. 下载文件,数据包保存到 /etc/xiaoya/data
2. 注入定时任务crontab
3. 编辑 download_url.txt
也就是每小时去抓一次文件,中间网络不稳定都无所谓,反正只要有一次成功,/etc/xiaoya/data 目录下就有可用的文件。这样启动稳定性大大增加,不会一会儿有内容一会儿没内容
这个sh文件我看了下,会添加定时任务,每一小时更新下关键启动文件:tvbox.zip update.zip index.zip version.txt
执行该命令前,/etc/xiaoya 下面是没有 data文件夹的
我们来执行命令,第一次会自动创建 /etc/xiaoya/data 文件夹,并下载几个关键文件,如果小雅容器有更新,也会一并升级。
执行过后,可以看到 /etc/xiaoya/data 下的文件了
我们再看看定时任务,已经自动添加好了。每小时会自动运行该脚本,有关键文件更新下载和容器更新 则更新,没有则保持不变。
最后的效果
-
xiaoya_update 定时运行,每小时检查关键文件更新、和小雅容器更新,保证顺利启动
-
xiaoya 容器每天早上定时重启,获取最新文件列表
-
xiaoyakeeper (尊敬的清道夫大人)默默的守护者你,你看一个他删一个,网盘里干净整洁
现在我的小雅很少出问题了。
如上磨磨唧唧说了一大堆,就是给大家讲讲原理,以后碰到问题也知道咋解决。
三、踩过的坑 -- 常见问题
绝大多数问题都是因为网络,我大连配置的小雅,从来没折腾过。不用定时更新,不用科学,就是稳定。上海的就不行,隔三差五出问题。
1. 如果出现了重启后只有一个版本号,那就说明网络没有获取到数据
要么启动的时候超时了,要么这些文件取不到。通过步骤四可以解决。
2. 如果步骤四也报错,那估计你要科学一下了。如何科学?
创建容器时,加一个环境变量 http_proxy 值为你的科学地址比如 http://192.168.1.6:8890
如果是https的, https_proxy 对应 https://192.168.1.6:8890
已有容器,增加个环境变量即可。
3.我已经很努力了,所有token都取了很多次,还报错,类似: Tokenverifyfailed:The token was expected to have 3 parts, but got 1.
告诉你,不是你的错,是验证你的refreshtoken不成功,换个opentokenurl 就可以了。修改 /etc/xiaoya/opentoken_url.txt 文件
这里有2个地址,换成另外一个试试,基本都奏效。(这个问题困扰了我好久,xiaoya群里直说换个refreshtoken --没用,最后我自己研究出来这个解决方案)
-
https://api-cf.nn.ci/alist/ali_open/token
-
https://api.xhofe.top/alist/ali_open/token
4. 报错诸如cant get file id
一定是网盘满了,按照我的方式部署,step3 xiaoyakeeper,你不会遇见这个问题的。
5.我都装好了,小雅里面好多东西,我有点没方向了。
小雅装好,以下方式可以选择
-
ip:5678 网页直接观看,可以充分利用搜索功能有方向的看,别瞎看,浪费自己生命,你看不完的,哈哈哈。
-
配置webdav,客户端看,webdav 账号密码 用户: guest 密码: guest_Api789
-
套娃到自己的Alist,可以参考我之前的文章。
执行下面代码获取令牌
把令牌填到 Authorization, Server 选用本地的docker 地址,不要填账号和密码
docker exec -i xiaoya sqlite3 data/data.db <
select value from x_setting_items where key = "token";
EOF
-
自己的xiaoya直接放公网? 那改下密码吧
设置强制登入,和自定义密码
把密码保存到 /etc/xiaoya/guestpass.txt (不过不要设置稀奇古怪的符号,例如;“~@()*$ 之类的)
如果你的xiaoya放在公网,为了防止别人蹭网,可以设置强制登入,新增 /etc/xiaoya/guestlogin.txt 这个文件,重启即可,文件有没有内容无所谓,如果取消强制登入就删除这个文件。强制登入的账号为 dav,密码使用 /etc/xiaoya/guestpass.txt 里设置的,同时webdav连接使用 dav 这个用户
上述2个功能设置好后需要重启docker才会生效。
-
我一般都豆瓣找自己想看的,然后去 主页 | 小雅的分类 Alist (xiaoya.pro) 搜索,得到路径后去自己的alist对应目录去播放。
6.其他问题
见招拆招吧,评论区见,我自信的认为,你把4个步骤都做了,90%的问题都能解决。
四、有感而发
最近很多朋友比较担忧阿里云API收费,这些东西都会挂云云。 我比较同意xiaoya作者的看法。
互联网嘛,总有一些人为爱发电,比如我就乐于分享,哈哈哈。相信新的政策出来,大家会有新的方式方法的。不必过于担忧、过分唱衰带节奏。
那么今天呢?今朝有酒今朝醉,且用且珍惜就是了。折腾是一种乐趣,分享是一种精神,能帮到大家,我很荣幸。
版权声明:本文标题:趁着阿里云还没收费,多用用小雅吧 --xiaoya杂谈 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1725890746h888138.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论