引言
无事如有事时堤防,可以弭意外之变;有事如无事时镇定,可以销局中之危。 ——勿埋我心
看到不错的抖音视频想要保存下载,用什么呢?xp框架吗,还是解析网站?既然这样不妨试试自己搞一个解析服务。
解析脚本来源:https://qq.cool/post/48.html
有了最核心的部分,下面要做的事情就简单了,我选择将其与Telegram机器人结合起来,因为TG机器人还是比较方便好用的。
成品源码
Github:Qiantigers/TelegramBot_douyin: Telegram机器人实现抖音视频去水印下载 (github.com)
如何使用?
一、获取你自己的BOT API(如果不知道可以自行搜索,这很简单)
二、打开源码中config.py,将你的bot_api填入其中
三、启动main文件,然后可以向机器人发送指令,指令为/douyin_qu_shui_yin {video link}
测试实际效果
已经搭建好的机器人 @Complex_1ove_bot
对代码进行一些优化
优化部分的代码我没有写入源码中,因为我认为成品尽量写的简单点,这样部署起来会比较顺手,有需要可以参考下面的介绍进行添加。
如果多个人解析同一个视频
想想,假如某个视频很火,有10个人都要解析这个视频,那服务器岂不是要进行10次的重复工作,不仅添加服务器的负担,而且效率也低。
所以,我们可以把已解析过视频以及其结果,存入数据库之中。(table:id, from_url, to_url)
在解析之前,看看数据库中有没有,如果没有,服务器再调用接口生成无水印视频链接。
数据库可以使用Sqlite3,这个比较轻量
看代码:
def get_douyin(url):
if re.match(r'http[s]?://v.douyin.com/\S+', url):
conn = myConn.MyConn() # 自己封装的数据库操作
url_kaywords = re.findall(r"v.douyin.com/([A-Za-z0-9]+)", url)[0].replace('/', '')
s_res = conn.execute_sql(f"select * from douyin where from_url like '%{url_kaywords}%';").fetchall()
if s_res == []:
dy = Douyin(url)
try:
url_judged = dy.run()
except:
url_judged = "仅支持解析视频,像图文类的就不支持。"
creat_time = time.strftime("%Y-%m-%d %H:%M:%S")
sql = "insert into douyin (from_url, to_url, time) values (?,?,?)"
conn.execute_sql_2(sql, (url, url_judged, creat_time))
else:
url_judged = s_res[0][2]
return url_judged
else:
return '请检查你输入的链接是否正确,例如:https://v.douyin.com/6kAoWvc/'
结语
有编程基础的同学,可以在源码上进行二次优化,将它变成你喜欢的样子。
如果觉得不错,给个Star。欢迎有疑惑在勿埋我心评论区留言。
源码怎么打开?打开就是你发的贴子啊