GithubHelp home page GithubHelp logo

evil0ctal / douyin_tiktok_download_api Goto Github PK

View Code? Open in Web Editor NEW
6.9K 59.0 1.1K 8.55 MB

🚀「Douyin_TikTok_Download_API」是一个开箱即用的高性能异步抖音、快手、TikTok、Bilibili数据爬取工具,支持API调用,在线批量解析及下载。

Home Page: https://douyin.wtf

License: Apache License 2.0

Procfile 0.01% Python 99.38% Dockerfile 0.19% Shell 0.42%
python pywebio tiktok douyin api scraper fastapi no-watermark online-parsing async

douyin_tiktok_download_api's Introduction

Douyin_TikTok_Download_API(抖音/TikTok API)

English | 简体中文

🚀「Douyin_TikTok_Download_API」是一个开箱即用的高性能异步抖音|TikTok|Bilibili数据爬取工具,支持API调用,在线批量解析及下载。

GitHub license Release Version GitHub Star GitHub Fork GitHub issues GitHub closed issues GitHub Repo size
PyPI v PyPI wheel PyPI dm PyPI pyversions
API status TikHub-API status
爱发电 Kofi Patreon

🔊 V4.0.0版本重构

TODO:

  • 移除了过时的bilibili代码,需要有人重写。
  • 群里有人想添加快手以及西瓜视频的解析。
  • 自述文件已经过时,需要进行重写。
  • 进行PyPi包制作
  • config.yaml文件需要进行修整。
  • 添加对用户主页的解析。
  • iOS快捷指令需要更新兼容最新的API响应和路径。
  • 桌面端下载器或浏览器插件有需要可以进行开发。
  • 解决爬虫Cookie风控问题。

更改

  • 将Pywebio作为FastAPI的子APP一起运行。
  • 重写了抖音以及TikTok的接口,感谢 @johnserf-seed
  • 重写了文件下载的端点,现在使用异步文件IO。
  • 对所有端点进行了注解和演示值的添加。
  • 整理项目文件结构。

备注

感兴趣一起写这个项目的给请加微信Evil0ctal备注github项目重构,大家可以在群里互相交流学习,不允许发广告以及违法的东西,纯粹交朋友和技术交流。

私有接口服务

Discord: TikHub Discord

Free Douyin/TikTok API: TikHub Beta API

👻介绍

🚨如需使用私有服务器运行本项目,请参考部署方式[Docker部署, 一键部署]

本项目是基于 PyWebIOFastAPIHTTPX,快速异步的抖音/TikTok数据爬取工具,并通过Web端实现在线批量解析以及下载无水印视频或图集,数据爬取API,iOS快捷指令无水印下载等功能。你可以自己部署或改造本项目实现更多功能,也可以在你的项目中直接调用scraper.py或安装现有的pip包作为解析库轻松爬取数据等.....

一些简单的运用场景:

下载禁止下载的视频,进行数据分析,iOS无水印下载(搭配iOS自带的快捷指令APP 配合本项目API实现应用内下载或读取剪贴板下载)等.....

🖥演示站点: 我很脆弱...请勿压测(·•᷄ࡇ•᷅ )

😾演示站点的在线下载功能被我关掉了,有人下的视频巨大无比直接给我服务器干崩了,自己在网页解析结果里右键保存吧...

🍔Web APP: https://douyin.wtf/

🍟API Document: https://douyin.wtf/docs

🌭TikHub API Document: https://api.tikhub.io/docs

💾iOS Shortcut(快捷指令): Shortcut release

📦️桌面端下载器(仓库推荐):

⚗️技术栈

/crawlers

  • 向不同平台的API提交请求并取回数据,处理后返回字典(dict),支持异步。

/app/api

  • 获得请求参数并使用Crawlers相关类处理数据后以JSON形式返回,视频下载,配合iOS快捷指令实现快速调用,支持异步。

/app/web

  • 使用PyWebIO制作的简易Web程序,将网页输入的值进行处理后使用Crawlers相关类处理接口输出相关数据在网页上。

以上文件的参数大多可在对应的config.yaml中进行修改

💡项目文件结构

./Douyin_TikTok_Download_API
    ├─app
    │  ├─api
    │  │  ├─endpoints
    │  │  └─models
    │  ├─download
    │  └─web
    │      └─views
    └─crawlers
        ├─douyin
        │  └─web
        ├─hybrid
        ├─tiktok
        │  ├─app
        │  └─web
        └─utils

✨功能:

  • 抖音Web大多数API
  • TikTok Web大多数API
  • 网页端批量解析(支持抖音/TikTok混合提交)
  • 在线下载视频或图集。
  • API调用获取链接数据
  • 制作pip包方便快速导入你的项目
  • iOS快捷指令快速调用API实现应用内下载无水印视频/图集
  • 解析作者主页内所有视频(TikHub-API 支持抖音/TikTok)
  • 解析视频内所有评论信息(TikHub-API 支持抖音/TikTok)

📦调用解析库(待更新):

💡PyPi:https://pypi.org/project/douyin-tiktok-scraper/

安装解析库:pip install douyin-tiktok-scraper

import asyncio
from douyin_tiktok_scraper.scraper import Scraper

api = Scraper()

async def hybrid_parsing(url: str) -> dict:
    # Hybrid parsing(Douyin/TikTok URL)
    result = await api.hybrid_parsing(url)
    print(f"The hybrid parsing result:\n {result}")
    return result

asyncio.run(hybrid_parsing(url=input("Paste Douyin/TikTok/Bilibili share URL here: ")))

🗺️支持的提交格式:

💡提示:包含但不仅限于以下例子,如果遇到链接解析失败请开启一个新 issue

  • 快手视频链接
https://www.kuaishou.com/short-video/3xiqjrezhqjyzxw/
https://v.kuaishou.com/75kDOJ/
  • 西瓜视频链接
https://www.ixigua.com/7270448082586698281/
https://m.ixigua.com/video/7274710134306112054/
  • Bilibili视频链接
https://www.bilibili.com/video/BV1Th411x7ii/
  • 抖音分享口令 (APP内复制)
7.43 pda:/ 让你在几秒钟之内记住我  https://v.douyin.com/L5pbfdP/ 复制此链接,打开Dou音搜索,直接观看视频!
  • 抖音短网址 (APP内复制)
https://v.douyin.com/L4FJNR3/
  • 抖音正常网址 (网页版复制)
https://www.douyin.com/video/6914948781100338440
  • 抖音发现页网址 (APP复制)
https://www.douyin.com/discover?modal_id=7069543727328398622
  • TikTok短网址 (APP内复制)
https://www.tiktok.com/t/ZTR9nDNWq/
  • TikTok正常网址 (网页版复制)
https://www.tiktok.com/@evil0ctal/video/7156033831819037994
  • 抖音/TikTok批量网址(无需使用符合隔开)
https://v.douyin.com/L4NpDJ6/
https://www.douyin.com/video/7126745726494821640
2.84 nqe:/ 骑白马的也可以是公主%%百万转场变身https://v.douyin.com/L4FJNR3/ 复制此链接,打开Dou音搜索,直接观看视频!
https://www.tiktok.com/t/ZTR9nkkmL/
https://www.tiktok.com/t/ZTR9nDNWq/
https://www.tiktok.com/@evil0ctal/video/7156033831819037994

🛰️API文档

API文档:

本地:http://localhost:8000/docs

在线:https://api.douyin.wtf/docs

API演示:

  • 爬取视频数据(TikTok或Douyin混合解析) https://api.douyin.wtf/api/hybrid/video_data?url=[视频链接/Video URL]&minimal=false
  • 下载视频/图集(TikTok或Douyin混合解析) https://api.douyin.wtf/api/download?url=[视频链接/Video URL]&prefix=true&with_watermark=false

更多演示请查看文档内容......

💻部署(方式一 Linux)

💡提示:最好将本项目部署至美国地区的服务器,否则可能会出现奇怪的BUG。

推荐大家使用Digitalocean的服务器,主要是因为免费。

使用我的邀请链接注册,你可以获得$200的credit,当你在上面消费$25时,我也可以获得$25的奖励。

我的邀请链接:

https://m.do.co/c/9f72a27dec35

使用脚本一键部署本项目

  • 使用wget命令下载install.sh至服务器并运行
wget -O install.sh https://raw.githubusercontent.com/Evil0ctal/Douyin_TikTok_Download_API/main/bash/install.sh && sudo bash install.sh

开启/停止服务

  • systemctl start/stop Douyin_TikTok_Download_API.service

开启/关闭开机自动运行

  • systemctl enable/disable Douyin_TikTok_Download_API.service

更新项目

  • cd /www/wwwroot/Douyin_TikTok_Download_API/bash && sudo bash update.sh

💽部署(方式二 Docker)

💡Docker Image repo: Docker Hub

  • 安装docker
curl -fsSL get.docker.com -o get-docker.sh&&sh get-docker.sh &&systemctl enable docker&&systemctl start docker
  • 留下config.ini和docker-compose.yml文件即可
  • 运行命令,让容器在后台运行
docker-compose up -d
  • 查看容器日志
docker logs -f douyin_tiktok_download_api
  • 删除容器
docker rm -f douyin_tiktok_download_api
  • 更新
docker-compose pull && docker-compose down && docker-compose up -d

❤️ 贡献者

📸截图

API速度测试(对比官方API)

🔎点击展开截图

抖音官方API:

本项目API:

TikTok官方API:

本项目API:


项目界面

🔎点击展开截图

Web主界面:

Web main interface:


📜 Star历史

Star History Chart

MIT License

Start: 2021/11/06 GitHub: @Evil0ctal Contact: [email protected]

douyin_tiktok_download_api's People

Contributors

autunn avatar befantasy avatar chris-ss avatar citizen233 avatar dependabot[bot] avatar evil0ctal avatar github-actions[bot] avatar javaswing avatar jeffrey-deng avatar jw-star avatar maxsky avatar pagenotfound200 avatar thebunnies avatar xuenew avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

douyin_tiktok_download_api's Issues

Api doesnt work

image

Whenever i call api with this method i get this response, why?

启动报错啊

PermissionError: [Errno 13] Permission denied: 'logs.txt'

宝塔部署里面只能选一个启动文件

Web启动文件选择web_zh.py
API启动文件选择web_api.py
尝试创建了2个项目好像后面那个启动不成功
那这样是Web和Api是需要2台服务器分别来部署吗?

解析失败

本地运行起来,TIKTOK的视频解析失败。这是得越狱吗?然后抖音一些视频解析出来后无法下载,下载直接调403

heroku 404

我还尝试把add_url_rule 从 main里拿出来 并且添加route
两种方法下 / 都是404

下载视频的背景音乐链接没有了

首先非常感谢的大佬的贡献,你开发的这个工具功能是最全又是最简洁的

应该是此处代码写错了

if 'play_url' in js:
https://github.com/Evil0ctal/TikTokDownloader_PyWebIO/blob/6134137fca995e9eed24f1d2535e4e7f4a72d744/TikTok_ZH.py#L164
换成这样可以取
if 'music' in js['item_list'][0] and 'play_url' in js['item_list'][0]['music']:

另外,大佬,能不能在返回的json,加上背景音乐的title,我有根据背景音乐搜索视频的需求
我看抖音的api里有返回这个

关于 API 接口返回数据没有封面

Hi
这个工具很好用,谢谢你。 但我有一个问题,在请求 api 接口返回为什么没有封面图片数据呢? 我看到封面数据似乎在 api_url 接口里面,这样的话我如果想要获取封面数据需要在服务器做二次请求,这样会比较耗时。请问封面图片能否在 api 接口里面提供出来?

未指定URL

您好,请问下使用的时候,弹出指示:请确保向“获取URL内容”操作传递了有效URL。要怎么解决?我是在TikTok直接分享到快捷指令的,之前都可以下载,这次不可以,一直弹出广告那条指示。谢谢!

多条视频链接下莫名卡在第六条 无报错。。


127.0.0.1 - - [17/Mar/2022 20:15:05] "GET /?app=index HTTP/1.1" 200 -
Sending request to: 
https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=7074510252833606925
Type = video
http://v95-a.douyinvod.com/3ae2fc443a268604e866b91136d7f97c/6233347a/video/tos/cn/tos-cn-ve-15c001-alinc2/0515dd92f27f421b874fbd0009f2672e/?a=1128&br=1117&bt=1117&cd=0%7C0%7C0%7C0&ch=0&cr=0&cs=0&cv=1&dr=0&ds=3&er=&ft=gGf_l88-oU-DYlnt7TQ_plXxuhsd38yytqY&l=202203172015030102080971031F05DDA3&lr=&mime_type=video_mp4&net=0&pl=0&qs=0&rc=M2drOzU6ZnV1OzMzNGkzM0ApNjw2PGY4Nzw5N2g8NGdkN2cpaGRqbGRoaGRmYmctNXI0MDVqYC0tZC0vc3MxMDBhLzMzYTZjMC01LV5fOmNwb2wrbStqdDo%3D&vl=&vr=
https://sf6-cdn-tos.douyinstatic.com/obj/ies-music/7074510303102552869.mp3
https://sf6-cdn-tos.douyinstatic.com/obj/ies-music/7074510303102552869.mp3
惊不惊喜,意不意外#搞笑 #沙雕 @磁铁李飞(沙雕村)
彭恰恰(沙雕村)
pengqq88888
getting douyin result ['http://v95-a.douyinvod.com/3ae2fc443a268604e866b91136d7f97c/6233347a/video/tos/cn/tos-cn-ve-15c001-alinc2/0515dd92f27f421b874fbd0009f2672e/?a=1128&br=1117&bt=1117&cd=0%7C0%7C0%7C0&ch=0&cr=0&cs=0&cv=1&dr=0&ds=3&er=&ft=gGf_l88-oU-DYlnt7TQ_plXxuhsd38yytqY&l=202203172015030102080971031F05DDA3&lr=&mime_type=video_mp4&net=0&pl=0&qs=0&rc=M2drOzU6ZnV1OzMzNGkzM0ApNjw2PGY4Nzw5N2g8NGdkN2cpaGRqbGRoaGRmYmctNXI0MDVqYC0tZC0vc3MxMDBhLzMzYTZjMC01LV5fOmNwb2wrbStqdDo%3D&vl=&vr=', 'https://sf6-cdn-tos.douyinstatic.com/obj/ies-music/7074510303102552869.mp3', '惊不惊喜,意不意外#搞笑 #沙雕 @磁铁李飞(沙雕村)', '彭恰恰(沙雕村)', 'pengqq88888', 'https://www.douyin.com/video/7074510252833606925\n']
getting video info https://www.douyin.com/video/7073080385739033887

127.0.0.1 - - [17/Mar/2022 20:15:06] "GET /?app=index HTTP/1.1" 200 -
Sending request to: 
https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=7073080385739033887
127.0.0.1 - - [17/Mar/2022 20:15:07] "GET /?app=index HTTP/1.1" 200 -
127.0.0.1 - - [17/Mar/2022 20:15:08] "GET /?app=index HTTP/1.1" 200 -
getting video info https://www.douyin.com/video/7073080385739033887

127.0.0.1 - - [17/Mar/2022 20:15:09] "GET /?app=index HTTP/1.1" 200 -
Sending request to: 
https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=7073080385739033887
Type = video
http://v99-cold.douyinvod.com/01e01753cae1e96b28a702510487bae3/623334d5/video/tos/cn/tos-cn-ve-15c001-alinc2/67b6db9ab3d14e5baa9c9bec7a72727f/?a=1128&br=2037&bt=2037&cd=0%7C0%7C0%7C0&ch=0&cr=0&cs=0&cv=1&dr=0&ds=3&er=&ft=gGf_l88-oU-DYlnt7TQ_plXxuhsdG8yytqY&l=202203172015070102091570483105DB89&lr=&mime_type=video_mp4&net=0&pl=0&qs=0&rc=Mzp4cTs6Zjw8OzMzNGkzM0ApaDk0OGRnOWVmNzk2Zjo4ZmcpaGRqbGRoaGRmNTBlL3I0X25oYC0tZC0vc3MwLV42YDUyMjBjYzEtLmEvOmNwb2wrbStqdDo%3D&vl=&vr=
https://sf6-cdn-tos.douyinstatic.com/obj/ies-music/7073080454420630302.mp3
https://sf6-cdn-tos.douyinstatic.com/obj/ies-music/7073080454420630302.mp3
又是斗志斗勇的一天#凡尔赛式退货#搞笑 #沙雕
彭恰恰(沙雕村)
pengqq88888
getting douyin result ['http://v99-cold.douyinvod.com/01e01753cae1e96b28a702510487bae3/623334d5/video/tos/cn/tos-cn-ve-15c001-alinc2/67b6db9ab3d14e5baa9c9bec7a72727f/?a=1128&br=2037&bt=2037&cd=0%7C0%7C0%7C0&ch=0&cr=0&cs=0&cv=1&dr=0&ds=3&er=&ft=gGf_l88-oU-DYlnt7TQ_plXxuhsdG8yytqY&l=202203172015070102091570483105DB89&lr=&mime_type=video_mp4&net=0&pl=0&qs=0&rc=Mzp4cTs6Zjw8OzMzNGkzM0ApaDk0OGRnOWVmNzk2Zjo4ZmcpaGRqbGRoaGRmNTBlL3I0X25oYC0tZC0vc3MwLV42YDUyMjBjYzEtLmEvOmNwb2wrbStqdDo%3D&vl=&vr=', 'https://sf6-cdn-tos.douyinstatic.com/obj/ies-music/7073080454420630302.mp3', '又是斗志斗勇的一天#凡 尔赛式退货#搞笑 #沙雕', '彭恰恰(沙雕村)', 'pengqq88888', 'https://www.douyin.com/video/7073080385739033887\n']
getting video info https://www.douyin.com/video/7072296901554474247

127.0.0.1 - - [17/Mar/2022 20:15:10] "GET /?app=index HTTP/1.1" 200 -
Sending request to: 
https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=7072296901554474247
127.0.0.1 - - [17/Mar/2022 20:15:11] "GET /?app=index HTTP/1.1" 200 -
getting video info https://www.douyin.com/video/7072296901554474247

127.0.0.1 - - [17/Mar/2022 20:15:12] "GET /?app=index HTTP/1.1" 200 -
Sending request to: 
https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=7072296901554474247
Type = video
http://v5-coldy.douyinvod.com/e10a1263277990bb0c0aa3e9bba15dbf/62333492/video/tos/cn/tos-cn-ve-15-alinc2/96ddf1dc899a4a6795df4573b3872958/?a=1128&br=1672&bt=1672&cd=0%7C0%7C0%7C0&ch=0&cr=0&cs=0&cv=1&dr=0&ds=3&er=&ft=gGf_l88-oU-DYlnt7TQ_plXxuhsdC8yytqY&l=202203172015100102101860444A060559&lr=&mime_type=video_mp4&net=0&pl=0&qs=0&rc=M3I4eTo6Zml3OzMzNGkzM0ApMzxlaTc6ZDw5N2ZnZ2k7ZWcpaGRqbGRoaGRmMGhgNHI0Z2RmYC0tZC0vc3MyYjExYTMwNV4xX15gLzIzOmNwb2wrbStqdDo%3D&vl=&vr=
https://sf6-cdn-tos.douyinstatic.com/obj/ies-music/7072296930944043807.mp3
https://sf6-cdn-tos.douyinstatic.com/obj/ies-music/7072296930944043807.mp3
遭了!昨晚玩游戏忘充电了😱#搞笑 #沙雕@磁铁李飞(沙雕村)
彭恰恰(沙雕村)
pengqq88888
getting douyin result ['http://v5-coldy.douyinvod.com/e10a1263277990bb0c0aa3e9bba15dbf/62333492/video/tos/cn/tos-cn-ve-15-alinc2/96ddf1dc899a4a6795df4573b3872958/?a=1128&br=1672&bt=1672&cd=0%7C0%7C0%7C0&ch=0&cr=0&cs=0&cv=1&dr=0&ds=3&er=&ft=gGf_l88-oU-DYlnt7TQ_plXxuhsdC8yytqY&l=202203172015100102101860444A060559&lr=&mime_type=video_mp4&net=0&pl=0&qs=0&rc=M3I4eTo6Zml3OzMzNGkzM0ApMzxlaTc6ZDw5N2ZnZ2k7ZWcpaGRqbGRoaGRmMGhgNHI0Z2RmYC0tZC0vc3MyYjExYTMwNV4xX15gLzIzOmNwb2wrbStqdDo%3D&vl=&vr=', 'https://sf6-cdn-tos.douyinstatic.com/obj/ies-music/7072296930944043807.mp3', '遭了!昨晚玩游戏忘充电了😱#搞笑 #沙雕@磁铁李飞(沙雕村)', '彭恰恰(沙雕村)', 'pengqq88888', 'https://www.douyin.com/video/7072296901554474247\n']
127.0.0.1 - - [17/Mar/2022 20:15:13] "GET /?app=index HTTP/1.1" 200 -
getting video info https://www.douyin.com/video/7071923678782557477

Sending request to: 
https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=7071923678782557477
127.0.0.1 - - [17/Mar/2022 20:15:14] "GET /?app=index HTTP/1.1" 200 -
127.0.0.1 - - [17/Mar/2022 20:15:15] "GET /?app=index HTTP/1.1" 200 -
getting video info https://www.douyin.com/video/7071923678782557477

Sending request to: 
https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=7071923678782557477
Type = video
http://v26-cold.douyinvod.com/4988cd1d8baaa575038689dc0d2d5237/6233348d/video/tos/cn/tos-cn-ve-15-alinc2/926e645571fd4b4d977bfec4a67239a7/?a=1128&br=1327&bt=1327&cd=0%7C0%7C0%7C0&ch=0&cr=0&cs=0&cv=1&dr=0&ds=3&er=&ft=gGf_l88-oU-DYlnt7TQ_plXxuhsdO8yytqY&l=202203172015130102120980964605C56C&lr=&mime_type=video_mp4&net=0&pl=0&qs=0&rc=M3Q5czo6ZnY7OzMzNGkzM0ApPGU1ZWc0NDxpNzU7NzhlaGcpaGRqbGRoaGRmYDNxMXI0ZzZmYC0tZC0vc3MtMDUuLzI0NV9iNS02LTExOmNwb2wrbStqdDo%3D&vl=&vr=
https://sf6-cdn-tos.douyinstatic.com/obj/ies-music/7071923708365261604.mp3
https://sf6-cdn-tos.douyinstatic.com/obj/ies-music/7071923708365261604.mp3
这个不说话的男人回来了#搞笑 #沙雕 @磁铁李飞(沙雕村)
彭恰恰(沙雕村)
pengqq88888
getting douyin result ['http://v26-cold.douyinvod.com/4988cd1d8baaa575038689dc0d2d5237/6233348d/video/tos/cn/tos-cn-ve-15-alinc2/926e645571fd4b4d977bfec4a67239a7/?a=1128&br=1327&bt=1327&cd=0%7C0%7C0%7C0&ch=0&cr=0&cs=0&cv=1&dr=0&ds=3&er=&ft=gGf_l88-oU-DYlnt7TQ_plXxuhsdO8yytqY&l=202203172015130102120980964605C56C&lr=&mime_type=video_mp4&net=0&pl=0&qs=0&rc=M3Q5czo6ZnY7OzMzNGkzM0ApPGU1ZWc0NDxpNzU7NzhlaGcpaGRqbGRoaGRmYDNxMXI0ZzZmYC0tZC0vc3MtMDUuLzI0NV9iNS02LTExOmNwb2wrbStqdDo%3D&vl=&vr=', 'https://sf6-cdn-tos.douyinstatic.com/obj/ies-music/7071923708365261604.mp3', '这个不说话的男人回来了#搞 笑 #沙雕 @磁铁李飞(沙雕村)', '彭恰恰(沙雕村)', 'pengqq88888', 'https://www.douyin.com/video/7071923678782557477\n']
getting video info https://www.douyin.com/video/7070123234179517733

127.0.0.1 - - [17/Mar/2022 20:15:16] "GET /?app=index HTTP/1.1" 200 -
Sending request to: 
https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=7070123234179517733
127.0.0.1 - - [17/Mar/2022 20:15:17] "GET /?app=index HTTP/1.1" 200 -
Type = video
http://v95-a.douyinvod.com/787e5645a4d3b712f94ff7b3b729760b/623334e5/video/tos/cn/tos-cn-ve-15-alinc2/e4bbb663a15442718744e83fccbe1206/?a=1128&br=2184&bt=2184&cd=0%7C0%7C0%7C0&ch=0&cr=0&cs=0&cv=1&dr=0&ds=3&er=&ft=gGf_l88-oU-DYlnt7TQ_plXxuhsdz8yytqY&l=2022031720151501021203810940054DFF&lr=&mime_type=video_mp4&net=0&pl=0&qs=0&rc=anR2Ojk6ZjU0OzMzNGkzM0ApZ2c4NTk1ZGQ1N2c1OjczZ2cpaGRqbGRoaGRmYGlsMnI0Z3JjYC0tZC0vc3NiNTQzNi5hMzYzLWA0MWNfOmNwb2wrbStqdDo%3D&vl=&vr=
getting video info https://www.douyin.com/video/7070123234179517733

Sending request to: 
https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=7070123234179517733
127.0.0.1 - - [17/Mar/2022 20:15:18] "GET /?app=index HTTP/1.1" 200 -
127.0.0.1 - - [17/Mar/2022 20:15:19] "GET /?app=index HTTP/1.1" 200 -
getting video info https://www.douyin.com/video/7070123234179517733

Sending request to: 
https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=7070123234179517733
Type = video
http://v95-a.douyinvod.com/c4fc2102337b736514f9e8900846f1b7/623334e8/video/tos/cn/tos-cn-ve-15-alinc2/e4bbb663a15442718744e83fccbe1206/?a=1128&br=2184&bt=2184&cd=0%7C0%7C0%7C0&ch=0&cr=0&cs=0&cv=1&dr=0&ds=3&er=&ft=gGf_l88-oU-DYlnt7TQ_plXxuhsdT8yytqY&l=2022031720151801021207406923058A72&lr=&mime_type=video_mp4&net=0&pl=0&qs=0&rc=anR2Ojk6ZjU0OzMzNGkzM0ApZ2c4NTk1ZGQ1N2c1OjczZ2cpaGRqbGRoaGRmYGlsMnI0Z3JjYC0tZC0vc3NiNTQzNi5hMzYzLWA0MWNfOmNwb2wrbStqdDo%3D&vl=&vr=
127.0.0.1 - - [17/Mar/2022 20:15:20] "GET /?app=index HTTP/1.1" 200 -

咋回事

抖音快捷指令开始让输入文本,最终url错误

测试的时候发生错误,没法下载

D:\Anaconda3\envs\titok\python.exe D:/project/Douyin_TikTok_Download_API/test.py

在此输入TikTok分享口令/链接:https://www.tiktok.com/@martinalynnnn/video/7033880938924739846?is_copy_url=1&is_from_webapp=v1&q=%23coversong&t=1652695567630
目标链接: https://www.tiktok.com/@martinalynnnn/video/7033880938924739846?is_copy_url=1&is_from_webapp=v1&q=%23coversong&t=1652695567630
获取到的TikTok视频ID是7033880938924739846
{'status': 'failed', 'reason': ProxyError(MaxRetryError("HTTPSConnectionPool(host='www.tiktok.com', port=443): Max retries exceeded with url: /@martinalynnnn/video/7033880938924739846?is_copy_url=1&is_from_webapp=v1&q=%23coversong&t=1652695567630 (Caused by ProxyError('Cannot connect to proxy.', OSError(0, 'Error')))")), 'function': 'Scraper.tiktok()', 'value': 'https://www.tiktok.com/@martinalynnnn/video/7033880938924739846?is_copy_url=1&is_from_webapp=v1&q=%23coversong&t=1652695567630'}

Process finished with exit code 0

400 and slow loading speed when access homepage

 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.        
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on all addresses.
   WARNING: This is a development server. Do not use it in a production deployment.        
 * Running on http://192.168.124.17:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [11/Mar/2022 19:50:11] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [11/Mar/2022 19:50:12] code 400, message Bad request version ('localhost\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00')
127.0.0.1 - - [11/Mar/2022 19:50:12] "  üª4ÍÉ
                                             ·0cË<A2¤:_o¢%%þ-iA Caï!½X                    ¸¸#.RfK°ØJ&2Û¨ÿ-Ôsí>  ÊÊÀ+À/À,À0̨̩ÀÀ  **      
                                                        localhost                           ÿ   " HTTPStatus.BAD_REQUEST -
127.0.0.1 - - [11/Mar/2022 19:50:12] "GET /?app=index HTTP/1.1" 200 -
127.0.0.1 - - [11/Mar/2022 19:50:12] code 400, message Bad request version ('localhost\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00')
127.0.0.1 - - [11/Mar/2022 19:50:12] "  ü÷
                                          ¥À3ÑÎA5!ªÇTC&YñëùIÕÐ˹ 'Àï¨;                    §Û.E=@PP"7zKQ£TÃ¥¥?àÐFÊ  À+À/À,À0̨̩ÀÀ  jj      
                                                         localhost                          ÿ   " HTTPStatus.BAD_REQUEST -
127.0.0.1 - - [11/Mar/2022 19:50:12] code 400, message Bad request version ('localhost\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00')
cf½¨<"Þº
        ܦ öi8­\\<Å=
ÉS  À+À/À,À0̨̩ÀÀ  ªª                                                                        
      localhost   ÿ   " HTTPStatus.BAD_REQUEST -
127.0.0.1 - - [11/Mar/2022 19:50:12] code 400, message Bad request version ('localhost\x00\x17\x00\x00ÿ\x01\x00\x01\x00\x00')
127.0.0.1 - - [11/Mar/2022 19:50:12] "  ü|¦b5lN]?¼9_ÕR¤³OÀêov= /¦FYÅÞÄý                   ýìå}ɼâAàÇÂ~c^±@¦  À+À/À,À0̨̩ÀÀ  ZZ      
                                             localhost   ÿ                                 " HTTPStatus.BAD_REQUEST -
en <class 'str'>

tiktok 失效

目标链接:  https://www.tiktok.com/@lenana_j/video/7103181064587300098?_d=secCgYIASAHKAESPgo8YwgsU9uTM9K7omO3K94slpYkWrr6RakLYCrRFZs5hJ8bN%2B0v0zkFIxGn9zOaJeLxZK2%2ByxtHM7SsmkzhGgA%3D&checksum=9f23f51e6093c0920c84d103e02f7cf125d41fc3783b81df295d1636db96b928&language=zh&preview_pb=0&sec_user_id=MS4wLjABAAAAj33oOxdWXsSAZOjynILKrxhHtBn16WtXajgItMY-aKlyB_ZFjeykv0OrZUVpsGCS&share_app_id=1233&share_item_id=7103181064587300098&share_link_id=F823ED8E-555E-48E0-94AA-D07E44986535&source=h5_m&timestamp=1655437456&tt_from=copy&u_code=dj3fmhle1e49h6&user_id=6972371426553955333&utm_campaign=client_share&utm_medium=ios&utm_source=copy&_r=1
获取到的TikTok视频ID是7103181064587300098
视频ID为: 7103181064587300098
正在请求API链接:https://api.tiktokv.com/aweme/v1/multi/aweme/detail/?aweme_ids=%5B7103181064587300098%5D
{'status': 'failed', 'reason': KeyError('image_post_info',), 'function': 'Scraper.tiktok()', 'value': 'https://www.tiktok.com/@lenana_j/video/7103181064587300098?_d=secCgYIASAHKAESPgo8YwgsU9uTM9K7omO3K94slpYkWrr6RakLYCrRFZs5hJ8bN%2B0v0zkFIxGn9zOaJeLxZK2%2ByxtHM7SsmkzhGgA%3D&checksum=9f23f51e6093c0920c84d103e02f7cf125d41fc3783b81df295d1636db96b928&language=zh&preview_pb=0&sec_user_id=MS4wLjABAAAAj33oOxdWXsSAZOjynILKrxhHtBn16WtXajgItMY-aKlyB_ZFjeykv0OrZUVpsGCS&share_app_id=1233&share_item_id=7103181064587300098&share_link_id=F823ED8E-555E-48E0-94AA-D07E44986535&source=h5_m&timestamp=1655437456&tt_from=copy&u_code=dj3fmhle1e49h6&user_id=6972371426553955333&utm_campaign=client_share&utm_medium=ios&utm_source=copy&_r=1'}

Proxy IP?

This works phenomenally well for my needs on my local host but in production (on heroku) it times out. Is there a way to use a proxy IP address to make the request?

有错误

发生了了意料之外的错误,输入值已被记录。

⚠详情

函数名 原因 输入值
Scraper.tiktok() HTTPSConnectionPool(host='www.tiktok.com', port=443): Max retries exceeded with url: /@tvamii/video/7045537727743380782 (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x000001CBF7DC35E0>: Failed to establish a new connection: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。')) https://www.tiktok.com/@tvamii/video/7045537727743380782

可能的原因:

服务器可能被目标主机的防火墙限流(稍等片刻后再次尝试)

输入了错误的链接(暂不支持主页链接解析)

该视频已经被删除或屏蔽(你看的都是些啥(⊙_⊙)?)

你可以在右上角的关于菜单中查看本站错误日志。

点击此处在GayHub上进行反馈

发生了了意料之外的错误,输入值已被记录。

⚠详情
函数名 原因 输入值
Scraper.tiktok() HTTPSConnectionPool(host='www.tiktok.com', port=443): Max retries exceeded with url: /@tvamii/video/7045537727743380782 (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x000001CBF7DC35E0>: Failed to establish a new connection: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。')) https://www.tiktok.com/@tvamii/video/7045537727743380782
可能的原因:

服务器可能被目标主机的防火墙限流(稍等片刻后再次尝试)

输入了错误的链接(暂不支持主页链接解析)

该视频已经被删除或屏蔽(你看的都是些啥(⊙_⊙)?)

你可以在右上角的关于菜单中查看本站错误日志。

点击此处在GayHub上进行反馈

老师求教

老师请问根据个人主页获取所有视频这个怎么做,不商用仅做毕设学习

《热心市民》

醒来或者吃饱又是一年,相遇然后分别就在一天。
今天想通了,明天又不行了......

tiktok

国内解析没问题。
tiktok就不成功一个。
web端直接百分百不动了。
api无反应。
不知道,是否又更新了。。。。

Douyin 音频 No BGM found

大佬,我试了几个抖音的链接,音频好像都没有获取到显示 No BGM found ,但视频里并不是原创音频是有第三方音频的

连续下载需求

有一个app叫4k video downloader,它有个智能模式下载tiktok: 只要点击一个灯泡按钮,就会自动读出剪贴板里的地址,然后在UI里显示一条Log区域,先显示URL,解析完成,log区域就变成了nickname / video title / [download status]。多次数点击灯泡会显示多条log,一条条URL依次下载。

这个app最近有错误,无法正确解析URL了。所以今天我在github上发现了你的项目,试用了下觉得非常好。但是同时我也希望能有4k downloader这种流畅的下载体验。

我尝试修改你的项目,我目前只能把clear_file和tar file注释掉,下载路径设置到 ~/Downloads/tiktok, textarea改成inpur。把解析后的内容精减到尽可能少,然后点击解析窗最下方的绿色按钮完成下载。但是这样操作仍然需要多次点击才能下载一个视频。
并且页面完全刷新,没有了下载log。

我没玩过flask不知道怎么做才能不刷新页面,并且在解析完成后自动开始下载,Log还能重写到屏幕上已经存在的URL上。
所以我来此留一个issue看看能不能获得你的帮助。完成一个web_down.py的连续自动下载版本。

希望大佬看到。谢谢~

image

获取视频信息失败

['https://www.douyin.com/video/6997703748135030020/', 'https://www.douyin.com/video/7077879577111973156/']
正在请求抖音API链接:
https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=6997703748135030020/   
2022-04-27 19:49:05,689:INFO - 127.0.0.1 - - [27/Apr/2022 19:49:05] "GET /?app=index HTTP/1.1" 200 -

浏览器访问
https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=6997703748135030020/
image
但这个视频明明是有的 是我自己的问题吗

iOS抖音无水印快捷指令下载/iOS TikTok no watermark shortcut download

iOS Shortcut/快捷指令

快捷指令只需手动安装一次,往后在运行时会自动连接API-V1进行更新检查。

The shortcut command only needs to be manually installed once, and will automatically connect to API-V1 for update checking at runtime.

如果你愿意分享你魔改的快捷方式(捷径),欢迎在下方留言,我会将你的快捷方式链接收录至此文档内,感谢你的工作(#^.^#)

If you are willing to share the shortcut of your magic modification, please leave a message below, I will include your shortcut link in this document, thank you for your work (#^.^#)

[V6.0]
Release date: 2022/11/06
中文:
https://www.icloud.com/shortcuts/4465d514869e4ca585074d40328f3e0e
English:
https://www.icloud.com/shortcuts/58e3a2cbac784a6782f1031c6b1dd9f8
Note:
对最新的API-V1进行了适配,必须安装此更新才能正常使用捷径。
Note:
Adapted to the latest API-V1, this update must be installed to use shortcuts normally.

[V5.0]
Release date: 2022/07/18
中文/Chinese:
https://www.icloud.com/shortcuts/331073aca78345cf9ab4f73b6a457f97
英文/English:
https://www.icloud.com/shortcuts/83548306bc0c4f8ea563108f79c73f8d

[V4.0]
Release date: 2022/07/15
中文/Chinese:
https://www.icloud.com/shortcuts/25af5f6d9a9140e1a4e35c771313732f
英文/English:
https://www.icloud.com/shortcuts/0d37a661c1044ce4a428a84c13113c30

[V3.0]
Release date: 2022/04/16
中文/Chinese:
https://www.icloud.com/shortcuts/126820d2783748d1bdec95a223a02639

[V2.0]
Release date: 2022/04/06
中文/Chinese:
https://www.icloud.com/shortcuts/38df6ca6f54840e5af80b98bf52b9c3b

[V1.0]
Release date: 2022/02/06
中文/Chinese:
https://www.icloud.com/shortcuts/e8243369340548efa0d4c1888dd3c170

tiktok无水印视频接口好像无法访问了,请问是我梯子的问题吗?

HTTPSConnectionPool(host='toolav.herokuapp.com', port=443): Max retries exceeded with url: /id/?video_id=7044801419366616367 (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x000001BFA7D27D30>: Failed to establish a new connection: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。'))

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.