本文最后更新于 <span id="expire-date"></span> 天前,文中部分描述可能已经过时。

[admonition icon=”exclamation”]改良版脚本戳:https://blog.left.pink/archives/3073 [/admonition]

昨晚吃饭的时候没找到啥下饭的视频,就想着把以前收藏过得视频翻出来看看

结果发现好几个都失效了,我收藏的视频一般都是我很喜欢的,以后想看的时候没了那多可惜。

于是我马上有了个想法:我收藏完视频后我的VPS自动把视频下好

细细思考了之后确实可行:rss收到收藏更新 → 使用 you-get 下载

我所做的就是写个脚本把 rss 和 you-get连接起来,正好还能学习下写脚本

安装 you-get

you-get 是个非常强大的视频下载工具,它能下载几乎所有视频网站的视频。

#安装python
apt install python3
apt install python3-pip

#安装ffmpeg
apt install ffmpeg

#安装you-get
pip3 install you-get

使用格式
you-get URL

脚本

我的思路是使用 cron 每十分钟执行一次脚本,执行脚本的时间与 rss 的更新时间小于10分钟时,执行 you-get 命令下载视频到指定目录。

#!/bin/sh
you=/usr/local/bin/you-get
content=$(wget https://rsshub.app/bilibili/fav/10385631/928435831/0 -q -O -)
subpubdate=${content#*<pubDate>}
pubdate=${subpubdate%%</pubDate>*}
sublink=${subpubdate#*<link>}
link=${sublink%%</link>*}
pubdateseconds=$(date -d "${pubdate}" '+%s')
date=$(date -u '+%s')
time=`expr $date - $pubdateseconds`
Time=`expr $time / 60`
if [ $Time -le 11 ]
then
nohup $you -o /var/www/webdav/Bilibili $link &
fi

脚本只需要替换开头的 rss 地址和末尾 you-get 命令 -o 后面的下载位置,rss 的说明可以在 这里 查看

保存为 name.sh,加入到 定时任务

chmod + x name.sh
crontab -e

添加进去然后保存
*/10 * * * * /bin/bash /root/name.sh >/dev/null 2>&1


测试了一下每十分钟检查一次是个比较合理的频率

评论