Loading... # 前言 本文主要是关于我写的抖音批量下载与去水印工具的介绍。 本项目分为单个作品(视频/图集)去水印工具和批量下载工具 代码已经开源在我的GitHub上,欢迎大家star。 开源地址:https://github.com/imgyh/tiktok 抖音去水印工具Web demo:https://dy.gyh.im/ **联系方式:** > [TG](https://t.me/gyh9527) > [TG群组](https://t.me/GYHgroup) > [Email](mailto:admin@imgyh.com) ## 抖音去水印工具 Feature * 通过作品分享链接获取去水印作品、音乐、封面图、头像 * 获取点赞数、评论数、收藏数、分享数、作品描述等信息 * 支持直播解析 * 基于Flask实现 Web 交互界面      ## 抖音批量下载工具 Feature * 支持个人主页链接、作品分享链接、抖音直播Web链接、合集链接、音乐(原声)集合链接 * 支持单个作品下载、主页作品下载、主页喜欢下载、直播解析、单个合集下载、主页所有合集下载、音乐(原声)集合下载 * 下载视频、视频封面、音乐、头像 * 去水印下载 * 自动跳过已下载 * 支持指定下载作品数量 * 多线程下载      # 使用方法 ## 安装node.js环境(可选) > 为了快速获取X-Bogus加密参数, 推荐在本地安装node.js环境, 这样可以通过本地执行获取X-Bogus加密参数的js文件 > 当然如果没有安装node.js环境, 程序会从我服务器上部署的接口获取X-Bogus加密参数 ## 抖音去水印工具 使用抖音去水印工具有4种方式 1. (推荐)直接使用我搭建的抖音去水印工具:https://dy.gyh.im/ 2. 使用docker运行 ``` docker run -d -p 5000:5000 --name tiktok --restart=always imgyh/tiktokweb ``` 3. 本地搭建`python3.9`环境运行 ``` cd /path/to/tiktok python -m pip install -r requirements.txt python TikTokWeb.py ``` 4. windows用户也可以下载 Releases 中的 [TikTokWeb.exe](https://github.com/imgyh/tiktok/releases) 文件双击运行 5. 指定端口运行 ``` # 指定端口运行 python TikTokWeb.py -p 5001 .\TikTokWeb.exe -p 5001 ``` 访问: http://localhost:5000 ## 抖音批量下载工具 windows用户下载 Releases 中的 [TikTokCommand.exe](https://github.com/imgyh/tiktok/releases) 文件在cmd中运行 windows用户本地有`python3.9`环境, 也可按照linux与mac用户的方式运行 linux与mac用户下载本项目, 在本地`python3.9`环境中运行, 首先需要安装依赖, 安装命令 ``` cd /path/to/tiktok python -m pip install -r requirements.txt ``` 运行示例: - 获取帮助信息 ``` windows用户: .\TikTokCommand.exe -h linux与mac用户: python TikTokCommand.py -h ``` - 参数介绍 ``` -h, --help 展示帮助页 --link LINK, -l LINK 1.作品(视频或图集)、合集、音乐集合、个人主页抖音分享链接(删除文案, 保证只有URL, https://v.douyin.com/kcvMpuN/) 2.解析直播网页版网址(https://live.douyin.com/802939216127) --path PATH, -p PATH 下载保存位置 --music MUSIC, -m MUSIC 是否下载视频中的音乐(True/False), 默认为True --cover COVER, -c COVER 是否下载视频的封面(True/False), 默认为True, 当下载视频时有效 --avatar AVATAR, -a AVATAR 是否下载作者的头像(True/False), 默认为True --mode MODE, -M MODE link是个人主页时, 设置下载发布的作品(post)或喜欢的作品(like)或者用户所有合集(mix), 默认为post --number NUMBER, -n NUMBER 1.当下载单个合集、音乐集合、主页作品(post模式)和喜欢(like模式)时, 可设置下载前n个作品, 默认为0全部下载 2.当下载主页下所有合集(mix模式)时, 设置下载前n个合集下所有作品, 默认为0全部下载 --thread THREAD, -t THREAD 设置线程数, 默认5个线程 ``` - 下载单个作品 ``` windows用户: .\TikTokCommand.exe -l https://v.douyin.com/kcvMpuN/ -p C:\project\test linux与mac用户: python TikTokCommand.py -l https://v.douyin.com/kcvMpuN/ -p /path/to/downdir ``` - 下载主页全部作品 ``` windows用户: .\TikTokCommand.exe -l https://v.douyin.com/kcvSCe9/ -p C:\project\test linux与mac用户: python TikTokCommand.py -l https://v.douyin.com/kcvSCe9/ -p /path/to/downdir ``` - 下载主页前n个作品 ``` windows用户: .\TikTokCommand.exe -l https://v.douyin.com/kcvSCe9/ -p C:\project\test -n 30 linux与mac用户: python TikTokCommand.py -l https://v.douyin.com/kcvSCe9/ -p /path/to/downdir -n 30 ``` - 下载主页全部喜欢 ``` windows用户: .\TikTokCommand.exe -l https://v.douyin.com/kcvSCe9/ -p C:\project\test -M like linux与mac用户: python TikTokCommand.py -l https://v.douyin.com/kcvSCe9/ -p /path/to/downdir -M like ``` - 下载主页前n个喜欢 ``` windows用户: .\TikTokCommand.exe -l https://v.douyin.com/kcvSCe9/ -p C:\project\test -M like -n 30 linux与mac用户: python TikTokCommand.py -l https://v.douyin.com/kcvSCe9/ -p /path/to/downdir -M like -n 30 ``` - 下载单个合集全部作品 ``` windows用户: .\TikTokCommand.exe -l https://v.douyin.com/B3J63Le/ -p C:\project\test linux与mac用户: python TikTokCommand.py -l https://v.douyin.com/B3J63Le/ -p /path/to/downdir ``` - 下载单个合集前n个作品 ``` windows用户: .\TikTokCommand.exe -l https://v.douyin.com/B3J63Le/ -p C:\project\test -n 30 linux与mac用户: python TikTokCommand.py -l https://v.douyin.com/B3J63Le/ -p /path/to/downdir -n 30 ``` - 下载主页全部合集下所有作品 ``` windows用户: .\TikTokCommand.exe -l https://v.douyin.com/B38oovu/ -p C:\project\test -M mix linux与mac用户: python TikTokCommand.py -l https://v.douyin.com/B38oovu/ -p /path/to/downdir -M mix ``` - 下载主页前n个合集下所有作品 ``` windows用户: .\TikTokCommand.exe -l https://v.douyin.com/B38oovu/ -p C:\project\test -M mix -n 2 linux与mac用户: python TikTokCommand.py -l https://v.douyin.com/B38oovu/ -p /path/to/downdir -M mix -n 2 ``` - 下载音乐(原声)集合下所有作品 ``` windows用户: .\TikTokCommand.exe -l https://v.douyin.com/S6YMNXs/ -p C:\project\test linux与mac用户: python TikTokCommand.py -l https://v.douyin.com/S6YMNXs/ -p /path/to/downdir ``` - 下载音乐(原声)集合下前n个作品 ``` windows用户: .\TikTokCommand.exe -l https://v.douyin.com/S6YMNXs/ -p C:\project\test -n 30 linux与mac用户: python TikTokCommand.py -l https://v.douyin.com/S6YMNXs/ -p /path/to/downdir -n 30 ``` - 关闭头像下载, cover, music 也是一样的设置对应选项为 False ``` windows用户: .\TikTokCommand.exe -l https://v.douyin.com/kcvSCe9/ -p C:\project\test -a False linux与mac用户: python TikTokCommand.py -l https://v.douyin.com/kcvSCe9/ -p /path/to/downdir -a False ``` - 除了单个作品和直播, 其余模式均支持多线程下载, 默认5个线程, 可以自己调节线程数 ``` windows用户: .\TikTokCommand.exe -l https://v.douyin.com/kcvSCe9/ -p C:\project\test -t 8 linux与mac用户: python TikTokCommand.py -l https://v.douyin.com/kcvSCe9/ -p /path/to/downdir -t 8 ``` - 直播推流地址解析 ``` windows用户: .\TikTokCommand.exe -l https://live.douyin.com/802939216127 -p /path/to/downdir 或者 .\TikTokCommand.exe -l https://v.douyin.com/SnXMoh2/ -p /path/to/downdir linux与mac用户: python TikTokCommand.py -l https://live.douyin.com/802939216127 -p /path/to/downdir 或者 python TikTokCommand.py -l https://v.douyin.com/SnXMoh2/ -p /path/to/downdir ``` # ToDo - [x] 单个合集下载 - [x] 主页所有合集下载 - [x] 获取分享的音乐(原声)链接下的所有作品 - [x] 指定下载作品数量 - [ ] 获取热搜榜数据 - [ ] 多主页链接批量下载 - [x] 多线程下载 - [ ] 保存数据至数据库 - [ ] 制作成接口 # 鸣谢 本项目部分思路来自[TikTokDownload](https://github.com/Johnserf-Seed/TikTokDownload) # 申明 本项目只作为学习用途, 切勿他用 # License [MIT](https://opensource.org/licenses/MIT) © [imgyh](https://www.imgyh.com/) # Star History [](https://star-history.com/#imgyh/tiktok&Date) 最后修改:2023 年 03 月 22 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 4 如果觉得我的文章对你有用,请随意赞赏
33 条评论
欢迎加入TG群组: https://t.me/GYHgroup
为什么有些作品下载只有result.json,avatar.jpeg,cover.jpeg和音频文件,却没有视频文件?-主页全作品下载
去result.json里看看这个作品的awemeid,我去调试看看,可能是没获取到视频的下载地址
result.json里面有awemeid,批量下载很多都没有MP4文件。
awemeid是多少,我去看看这个文题
awemeid:6784628058662964493
我测试没问题啊,都能下载下来,所有批量下载最终都会去调用单个作品下载的方法
&aid=1128&version_name=23.5.0&device_platform=android&os_version=2333')
TypeError: can only concatenate str (not "NoneType") to str
输入了什么命令,看看格式是不是对的
tiktok-mainTikTok.py", line 105, in getAwemeInfo
url=f'aweme_id={aweme_id}老哥,音乐合集下的视频可以批量下载么
暂时还不能,准备后面空了,把这个功能加进去
6,作者批量下载的接口是不是还是不能用。好像是只能解析单一作品链接
从抖音的接口获取到ttwid, 还是会偶尔出现不返回数据的情况,只有让程序自动重试直到返回数据
批量下载抖音那边服务器有时不会返回数据,程序会自动重试直到返回数据,我测试发现需要重试几次才能返回数据,等会看看怎么解决一下
要是能选择只下载最近多少数量的作品 就好了,另外不要头像和音乐的命令没作用.加上了也还是一起下载了
下载最近多少数量作品功能已加入
已修复头像音乐封面命令不起作用,设置下载作品数量功能后续会考虑加进去
好像又不行了,
主页作品下载出问题了, 我明天来看看
抖音是不是修改主页接口了,我这边测试不返回数据了,作品详情接口倒是正常
已修复,暂时使用 https://github.com/Johnserf-Seed/TikTokDownload 提供的X-Bogus接口
好像还是不行
具体是什么错误呢,直播接口还没完全修复
和python版本有关吗?我用的3.7
提示未找到owner id,暂时不知道什么原因,你那是OK的吗?
警告不用管,有些作品没有owner id,抖音的接口就没返回,我那边接收的时候设置了这个字段所以会报这个警告,这是正常的
获取所有作品,一直卡在正在获取接口数据请稍后,单个作品没问题,你那边可以吗?
程序会先去获取所有作品的信息,需要请求多次抖音的接口,等待时间较长,全部作品的信息获取完之后,才会下载
docker安装不了了
具体什么现象,我这边测试是正常的(Linux amd64),直接复制我那条命令,首次运行的话会先下载镜像,下载慢请换docker镜像源