原因

最近发现自己的Bilibili收藏夹中的lp视频有好多失效了,特别难受,怎么样才能防止视频失效呢?
当然是下载下了,那怎么下载呢
那当然是使用You-Get这个python库了!
于是这个项目就诞生了!

艰难的过程

https://docs.rsshub.app/social-media.html#bilibili

于是我发现了RSSHub是可以获取Bilibili分区的视频排行榜
就类似于这样子:

那我们可以从中发现几个链接:

这些就是这些视频B站链接
于是我们便可以使用Python的XML将这些链接提取出来

url = 'http://rss.koileo.com:1200/bilibili/partion/ranking/20/7'
urllib.request.urlretrieve(url, 'abc.xml')

#打开xml文档
dom = xml.dom.minidom.parse('abc.xml')

#得到文档元素对象
root = dom.documentElement
file = open('link.txt','w')
cc=dom.getElementsByTagName('link')

当然代码中的url变量你可以换成其他RSSHub链接
同理:可以下载排行榜视频,用户收藏视频,用户投币视频
然后使用You-get进行下载即可

#!/usr/bin/python
#coding=utf-8
import  xml.dom.minidom
import urllib.request
import sys
from you_get import common as you_get
import time
import os.path
#获得当前系统时间的字符串
localtime=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
print('localtime='+localtime)
month=time.strftime('%m',time.localtime(time.time()))
day=time.strftime('%d',time.localtime(time.time()))
os.makedirs('/bilibili/video/2021' + '/'+ str(month) + '/' +  str(day))
directory = '/bilibili/video/2021' + '/'+ str(month) + '/' +  str(day)
url = 'http://rss.koileo.com:1200/bilibili/partion/ranking/20/7'
urllib.request.urlretrieve(url, 'abc.xml')

#打开xml文档
dom = xml.dom.minidom.parse('abc.xml')

#得到文档元素对象
root = dom.documentElement
file = open('link.txt','w')
cc=dom.getElementsByTagName('link')
i=1
while i<=20:
    c=cc[i]
    print(c.firstChild.data)
    print('Top' +str(i)+' ! ! ! ')
    sys.argv = ['you-get','-o',directory,c.firstChild.data]    
    you_get.main()
    i+=1

这下就大功告成了
可以设置计划任务,让脚本每周执行一次
必须使用Python3哦
记得提前安装好You-Get库

如果可以,请顺手点一个Star,让更多人看到!