Python
取数据 + Vue
写界面 + Aria2
下载
根据抖音各种链接或各种id,通过网页接口采集视频作品,并下载作品到本地。
支持用户主页链接或sec_uid/话题挑战和音乐原声链接或ID。
支持下载喜欢列表(需喜欢列表可见)
部分用户可下载喜欢列表(需喜欢列表可见),部分用户不可下载(即使喜欢列表可见也不行),目前不知道原因哈,猜测跟账号有关,不知道是设置问题还是账号注册日期问题(和sec_uid带不带下划线无关),测试账号结果见user.txt
。
测试环境:Python3.7
+pip最新
+Win10_x64
依赖安装失败自行百度或更换Python及pip版本解决;UI启动报错猜测是pywebview库调用的浏览器不兼容Vue;
在程序目录打开命令行,输入
pip install -r requirements.txt
双击打开启动.bat
,或者在程序目录打开命令行,输入
python ui.py
douyin.py
中相关参数使用完全不懂Python的朋友用命令行
或操作界面
。
有基础的可查看源码使用,或查看当前页源码,因为之前写的注释内容被注释掉了
exec.py
-h
参数查看帮助
python exec.py
python exec.py -h
python exec.py download -h
python exec.py download_batch -h
--type 指定下载类型,默认值:--type=user
--limit 指定采集数量,默认值:--limit=0(不限制)
python exec.py download https://v.douyin.com/xxxx/
python exec.py download 用户的secuid
python exec.py download MS4wLjABAAAAl7TJWjJJrnu11IlllB6Mi5V9VbAsQo1N987guPjctc8 --type=like --limit=10
python exec.py download 用户的secuid
python exec.py download https://v.douyin.com/xxxx/ --type=music --limit=10
python exec.py download 音乐ID --type=music --limit=10
Aria2c.exe
来开启服务,所以要用代码实现自动启动服务--auto-file-renaming=false
可行,但控制台使用会报错,虽然报错不影响-c
可行,且控制台不报错options = {'out': filename}
指定文件名,即-d
Download.title2path
静态方法os.popen
或subprocess.Popen
实现子进程打开程序,无界面,不阻塞if 'PROGRAMFILES(X86)' in os.environ
简单判断系统是否为64位launch.json
中加一句"cwd": "${fileDirname}",
即可,不过自动补全pylance就无法识别相对目录了pipreqs ./ --encoding=utf-8 --force
pywebview.api.func().then(() => {})
调用Python函数window.evaluate_js('JS代码')
调用JS方法_
开头偶然发现抖音网页的接口恢复了(不用频繁请求就有数据),就想修复一下之前做的采集工具,奈何代码实在是太乱了,自己看的头疼,只好稍微改了一下就扔出去了。
近期也比较无聊,就打算用Python重写一版,于是就有了这篇介绍。
Python入门水平加懒癌晚期的我,从10号开始有具体想法,用了差不多3天的碎片化时间构思了程序结构(主要是了解面向对象思维),看了不少文档。
私以为自己写一个下载功能不如直接调用Aria2,毕竟功能强大且稳定,但是网上没有找到多少Python调用Aria2的示例,只好在pypi找了个还在维护的看起来不错的库(aria2p),把文档翻了一遍,强行学习了一波。
我还从来没有写过类,这是第一次,对着文档和网上的各种文章,勉强按照理解写了出来。现在觉得,其实写不写类都一样能写出同样的功能,代码也差不了多少,不过函数比较多的时候,如果不用类,会比较乱(上一版易语言的就是,很长时间不看,自己再看都头疼),类的优势还有一点,就是公有属性。
面向对象编程确实有优势,先抽象化出类,再去实例化对象,代码结构一目了然,再加上继承什么的,确实很强大。
12号晚上开始敲代码,13号差不多写出来用户作品采集和下载功能,接着14号写了话题和音乐下载,同时完成了命令行。测试通过后,就不太想动了,直到今天16号,终于把介绍写出来了。界面暂时不写了,打包exe等明天后天或者大后天晚上再做。
可以说这次重新学了很多东西,不过根据过往经验,大概没几天就全忘了,没办法,就这样吧。
2021.03.16
拖了差不多3周,终于把UI写了点。
清明节前一天晚上开始动的,结果一晚上就改了几行代码,啥也没写,到前天晚上才又开始写。然后一通百度,两三天晚上写出来这点东西。
而且这次发现,之前不能采集用户喜欢,不是接口问题,是因为用户设置了隐藏,这没办法,不过用户公开的(比如自己)是可以采集喜欢的。
其实好久之前就想过HTML做界面了,当时是想用精易web浏览器来加载页面的,后来写Python还专门找miniblink的库。当时找到了一个更新比较活跃的,但是已经忘了叫什么了,因为在找的过程中发现了pywebview这个库,感觉挺强大的,也比较完善,还不用自己带浏览器内核,所以才有这次尝试。
界面只写了基础功能,限制采集数量没写,就一个input,但是感觉丑,就不加了。
不打算打包exe了,浪费时间,打包了还很大。况且Python环境安装很简单,百度一堆教程,其实无脑点下一步就行了。
这个软件到这里差不多就算完了,以后有机会写个快手的。
2021.04.08
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。