From 16b1c34bc599f07eaa4001134a8d01609478fc09 Mon Sep 17 00:00:00 2001 From: Evil0ctal Date: Sun, 6 Feb 2022 20:36:52 -0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=AA=84=20=E6=96=B0=E5=A2=9EiOS=E5=BF=AB?= =?UTF-8?q?=E6=8D=B7=E6=8C=87=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 265 ++++++++---------------------------------------------- 1 file changed, 37 insertions(+), 228 deletions(-) diff --git a/README.md b/README.md index 12c273d..c55f8d1 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ Language: [[English](https://github.com/Evil0ctal/TikTokDownloader_PyWebIO/blob/main/README.en.md)] [[简体中文](https://github.com/Evil0ctal/TikTokDownloader_PyWebIO/blob/main/README.md)] > Note: Words "TikTok" in this readme file mentioned stands for the Chinese version of TikTok. -AKA [[Douyin](https://www.douyin.com/)] or [[抖音](https://www.douyin.com/)] , The US TikTok is now supported! (no gallery analysis function) +> AKA [[Douyin](https://www.douyin.com/)] or [[抖音](https://www.douyin.com/)] , The US TikTok is now supported! (no gallery analysis function) ## 👻介绍 @@ -19,25 +19,27 @@ AKA [[Douyin](https://www.douyin.com/)] or [[抖音](https://www.douyin.com/)] , 🛰API演示:[https://douyin.wtf/api?url=https://v.douyin.com/R9bQKx4/](https://douyin.wtf/api?url=https://v.douyin.com/R9bQKx4/) +💾iOS快捷指令: [点击获取指令](https://www.icloud.com/shortcuts/e8243369340548efa0d4c1888dd3c170) 更新于2022/02/06 + 本项目使用 [PyWebIO](https://github.com/pywebio/PyWebIO)、[Requests](https://github.com/psf/requests)、[Flask](https://github.com/pallets/flask),利用Python实现在线批量解析抖音的无水印视频/图集。 可用于下载作者禁止下载的视频,同时可搭配[iOS快捷指令APP](https://apps.apple.com/cn/app/%E5%BF%AB%E6%8D%B7%E6%8C%87%E4%BB%A4/id915249334)配合本项目API实现应用内下载。 +快捷指令需要在抖音或TikTok的APP内,选择你想要保存的视频,点击分享按钮,然后找到 "抖音TikTok无水印下载" 这个选项,如遇到通知询问是否允许快捷指令访问xxxx (域名或服务器),需要点击允许才可以正常使用。 + ## 💯已支持功能: - 支持抖音视频/图集解析 - - 支持海外TikTok视频解析(无图集解析) - - 支持批量解析(支持抖音/TikTok混合解析) - - 支持API调用 +- 支持[iOS快捷指令](https://apps.apple.com/cn/app/%E5%BF%AB%E6%8D%B7%E6%8C%87%E4%BB%A4/id915249334)实现应用内下载无水印视频/图集 --- ## 🤦‍♂️后续功能: -- [ ] 搭配[iOS快捷指令APP](https://apps.apple.com/cn/app/%E5%BF%AB%E6%8D%B7%E6%8C%87%E4%BB%A4/id915249334)实现应用内下载 (懒,来个人帮忙写一下呗) +- [ ] 我也不知道 : ) --- @@ -64,26 +66,33 @@ http://localhost(服务器IP):80/ ## 🗺️支持的提交格式: -- 分享口令 +- 抖音分享口令 (APP内复制) ```text 例子:7.43 pda:/ 让你在几秒钟之内记住我 https://v.douyin.com/L5pbfdP/ 复制此链接,打开Dou音搜索,直接观看视频! ``` -- 短网址 +- 抖音短网址 (APP内复制) ```text -例子:https://v.douyin.com/RHnWEng/ +例子:https://v.douyin.com/L4FJNR3/ ``` -- 正常网址 +- 抖音正常网址 (网页版复制) ```text 例子: https://www.douyin.com/video/6914948781100338440 ``` -- TikTok网址 +- TikTok短网址 (APP内复制) + +```text +例子: +https://vm.tiktok.com/TTPdkQvKjP/ +``` + +- TikTok正常网址 (网页版复制) ```text 例子: @@ -106,7 +115,7 @@ https://www.tiktok.com/@tvamii/video/7045537727743380782 API可将请求参数转换为需要提取的无水印视频/图片直链,配合IOS捷径可实现应用内下载。 -- 解析请求参数 +- 解析请求参数 ```text http://localhost(服务器IP):80/api?url="复制的(抖音/TikTok)口令/链接" @@ -148,210 +157,21 @@ http://localhost(服务器IP):80/api?url="复制的(抖音/TikTok)口令/链接" ```JSON { - "author":"tvamii", - "authorId":"7019018029121455109", - "authorSecId":"MS4wLjABAAAAAdUMc4sCkhslVsCSHQfem65nh_Zz12rv15qGYzoCQ1n9UjndmhwvRS0kiZ17d8Ae", - "authorStats":{ - "diggCount":243, - "followerCount":4959, - "followingCount":40, - "heart":116400, - "heartCount":116400, - "videoCount":20 - }, - "avatarThumb":"https://p16-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/b6fbb55d497f2958ee428da9b0ebfe0f~c5_100x100.jpeg?x-expires=1644134400&x-signature=%2BSJvWXv1fqhO6X30Duiod9SZggc%3D", - "challenges":[ - { - "coverLarger":"", - "coverMedium":"", - "coverThumb":"", - "desc":"Mu\u00e9stranos tus mejores jugadas", - "id":"337014", - "isCommerce":false, - "profileLarger":"", - "profileMedium":"", - "profileThumb":"", - "title":"warzone" - }, - { - "coverLarger":"", - "coverMedium":"", - "coverThumb":"", - "desc":"", - "id":"42578", - "isCommerce":false, - "profileLarger":"", - "profileMedium":"", - "profileThumb":"", - "title":"callofduty" - }, - { - "coverLarger":"", - "coverMedium":"", - "coverThumb":"", - "desc":"", - "id":"229207", - "isCommerce":false, - "profileLarger":"", - "profileMedium":"", - "profileThumb":"", - "title":"fyp" - }, - { - "coverLarger":"", - "coverMedium":"", - "coverThumb":"", - "desc":"", - "id":"1677192325085189", - "isCommerce":false, - "profileLarger":"", - "profileMedium":"", - "profileThumb":"", - "title":"rebirthisland" - } - ], - "comments":[ - - ], - "createTime":"1640417086", - "desc":"Nothing better than rebirth island \ud83c\udfdd #warzone #callofduty #fyp #rebirthisland", - "digged":false, - "diversificationLabels":[ - "Video Games", - "Games", - "Entertainment" - ], - "duetDisplay":0, - "duetEnabled":true, - "duetInfo":{ - "duetFromId":"0" - }, - "effectStickers":[ - - ], - "forFriend":false, - "id":"7045537727743380782", - "indexEnabled":true, - "isActivityItem":false, - "isAd":false, - "itemCommentStatus":0, - "itemMute":false, - "music":{ - "album":"", - "authorName":"MAKAN", - "coverLarge":"https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/2b77a1347866635e004f9a8671d2f8df~c5_1080x1080.jpeg?x-expires=1644134400&x-signature=65YBpjA0yGaQHEncDGu%2Bb6P9ixA%3D", - "coverMedium":"https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/2b77a1347866635e004f9a8671d2f8df~c5_720x720.jpeg?x-expires=1644134400&x-signature=7%2B5y9PghRZMJOm3raGlCmzPXzH0%3D", - "coverThumb":"https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/2b77a1347866635e004f9a8671d2f8df~c5_100x100.jpeg?x-expires=1644134400&x-signature=xw9yp1XUNNKNxJq%2BA7KG4FYI9Ew%3D", - "duration":36, - "id":"6995388223497259781", - "original":true, - "playUrl":"https://sf16-ies-music-va.tiktokcdn.com/obj/musically-maliva-obj/6995388366275611397.mp3", - "scheduleSearchTime":0, - "title":"son original" - }, - "nickname":"Ami", - "officalItem":false, - "originalItem":false, - "privateItem":false, - "scheduleTime":0, - "secret":false, - "shareEnabled":true, - "showNotPass":false, - "stats":{ - "commentCount":69, - "diggCount":56900, - "playCount":133000, - "shareCount":22 - }, - "stickersOnItem":[ - - ], - "stitchDisplay":0, - "stitchEnabled":true, - "takeDown":0, - "textExtra":[ - { - "awemeId":"", - "end":46, - "hashtagId":"337014", - "hashtagName":"warzone", - "isCommerce":false, - "secUid":"", - "start":38, - "subType":0, - "type":1, - "userId":"", - "userUniqueId":"" - }, - { - "awemeId":"", - "end":58, - "hashtagId":"42578", - "hashtagName":"callofduty", - "isCommerce":false, - "secUid":"", - "start":47, - "subType":0, - "type":1, - "userId":"", - "userUniqueId":"" - }, - { - "awemeId":"", - "end":63, - "hashtagId":"229207", - "hashtagName":"fyp", - "isCommerce":false, - "secUid":"", - "start":59, - "subType":0, - "type":1, - "userId":"", - "userUniqueId":"" - }, - { - "awemeId":"", - "end":78, - "hashtagId":"1677192325085189", - "hashtagName":"rebirthisland", - "isCommerce":false, - "secUid":"", - "start":64, - "subType":0, - "type":1, - "userId":"", - "userUniqueId":"" - } - ], - "video":{ - "bitrate":2530304, - "codecType":"h264", - "cover":"https://p16-sign.tiktokcdn-us.com/obj/tos-useast5-p-0068-tx/bf17541f99cd47489050f740f2680e4e?x-expires=1644069600&x-signature=dZPl5WGnF8lwTgOoh0%2FyPp5RC7k%3D", - "definition":"720p", - "downloadAddr":"https://v16-webapp.tiktok.com/214ac5ed6ee8b0351c5487d6d45c0380/61fe8ece/video/tos/useast5/tos-useast5-ve-0068c003-tx/450dd55906664f5eb194d5b6212e6070/?a=1988&br=4942&bt=2471&cd=0%7C0%7C1%7C0&ch=0&cr=0&cs=0&cv=1&dr=0&ds=3&er=&ft=XOQ9-3E7nz7ThSm4xlXq&l=20220205085015010191055029051527A2&lr=tiktok_m&mime_type=video_mp4&net=0&pl=0&qs=0&rc=ajNnN2c6Zm5mOjMzZzczNEApZTtpNzo8OGU0NzplODM4aWcyL2lucjRfXzBgLS1kMS9zczUwYWE0NTA0XjIvXmM2NDY6Yw%3D%3D&vl=&vr=", - "duration":39, - "dynamicCover":"https://p16-sign.tiktokcdn-us.com/obj/tos-useast5-p-0068-tx/db58dfc00c5b43898c2bbaedfbe9f079_1640417087?x-expires=1644069600&x-signature=HkCCUrMMsd9pZExtuywu6cNVVOw%3D", - "encodeUserTag":"", - "encodedType":"normal", - "format":"mp4", - "height":576, - "id":"7045537727743380782", - "originCover":"https://p16-sign.tiktokcdn-us.com/obj/tos-useast5-p-0068-tx/035eb2303c2f4aa698a6cf2c200312d3_1640417087?x-expires=1644069600&x-signature=8CtiX%2F1iSTD07GOVFa32QpcAV44%3D", - "playAddr":"https://v16-webapp.tiktok.com/214ac5ed6ee8b0351c5487d6d45c0380/61fe8ece/video/tos/useast5/tos-useast5-ve-0068c003-tx/450dd55906664f5eb194d5b6212e6070/?a=1988&br=4942&bt=2471&cd=0%7C0%7C1%7C0&ch=0&cr=0&cs=0&cv=1&dr=0&ds=3&er=&ft=XOQ9-3E7nz7ThSm4xlXq&l=20220205085015010191055029051527A2&lr=tiktok_m&mime_type=video_mp4&net=0&pl=0&qs=0&rc=ajNnN2c6Zm5mOjMzZzczNEApZTtpNzo8OGU0NzplODM4aWcyL2lucjRfXzBgLS1kMS9zczUwYWE0NTA0XjIvXmM2NDY6Yw%3D%3D&vl=&vr=", - "ratio":"720p", - "reflowCover":"https://p16-sign.tiktokcdn-us.com/obj/tos-useast5-p-0068-tx/bf17541f99cd47489050f740f2680e4e?x-expires=1644069600&x-signature=dZPl5WGnF8lwTgOoh0%2FyPp5RC7k%3D", - "shareCover":[ - "", - "https://p19-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/035eb2303c2f4aa698a6cf2c200312d3_1640417087~tplv-tiktok-play.jpeg?x-expires=1644652800&x-signature=ANH1qJpgs291tRRn0HCRHsxIUfo%3D", - "https://p19-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/035eb2303c2f4aa698a6cf2c200312d3_1640417087~tplv-tiktokx-share-play.jpeg?x-expires=1644652800&x-signature=pMxB2XKFsgWE2yEdBEoEUYdExL4%3D" - ], - "videoQuality":"normal", - "width":1024 - }, - "vl1":false, - "warnInfo":[ - - ] + "Status":"Success", + "Type":"Video", + "followerCount":18, + "followingCount":18, + "likes_recived":3000000, + "music_author":"❁ちゅらる❁", + "music_title":"オリジナル楽曲 - ♛", + "original_url":"https://vm.tiktok.com/TTPdkQvKjP/", + "video_author":"nemi__goro", + "video_author_id":"78903680178", + "video_count":203, + "video_music":"https://sf16-ies-music-sg.tiktokcdn.com/obj/tiktok-obj/6967616110887701250.mp3", + "video_title":"#ベルメイク", + "video_url":"https://v16m.tiktokcdn.com/65824a4bba45fbf4691d1ea2d040d2cc/6200e22c/video/tos/alisg/tos-alisg-pve-0037/6799cebe4a2248b98828788c94964a57/?a=1233&br=4118&bt=2059&cd=0%7C0%7C0%7C3&ch=0&cr=3&cs=0&cv=1&dr=0&ds=3&er=&ft=CvjiQnB4TJBS6BMyjOYNVKP&l=20220207031102010223065036144769B6&lr=all&mime_type=video_mp4&net=0&pl=0&qs=0&rc=M3NtaTo6Zjc5OTMzODgzNEApOWVmaTtlZDs7N2VlNjc8N2dzMjAzcjRfXzZgLS1kLy1zcy8wMS0uXi8uLjY2YGFjYDE6Yw%3D%3D&vl=&vr=", + "water_mark_url":"https://v16-webapp.tiktok.com/233cec8c26b1a7d46fb6caaf5b354621/6200efc0/video/tos/alisg/tos-alisg-pve-0037/a00cfbcc79f54b66824aac6a871777c8/?a=1988&br=3506&bt=1753&cd=0%7C0%7C1%7C0&ch=0&cr=0&cs=0&cv=1&dr=0&ds=3&er=&ft=XOQ9-3E7nz7ThxPVoDXq&l=202202070408580102231230340B4C6876&lr=tiktok&mime_type=video_mp4&net=0&pl=0&qs=0&rc=M3NtaTo6Zjc5OTMzODgzNEApO2k8aTw0M2Q0N2VoZ2VoOWdzMjAzcjRfXzZgLS1kLy1zc19eYWJgY2E0MmFjMjY2MWE6Yw%3D%3D&vl=&vr=" } ``` @@ -373,14 +193,13 @@ http://localhost(服务器IP):80/bgm?url="复制的(抖音/TikTok)口令/链接" ## 💾部署 -> 最好将本项目部署至海外服务器,否则可能会出现奇怪的问题 +> 最好将本项目部署至海外服务器,否则可能会出现奇怪的问题 如:项目部署在国内服务器,而人在美国,点击结果页面链接报错403 ,目测与抖音CDN有关系。 > 使用宝塔Linux面板进行部署 - 首先要去安全组开放80端口(默认80,可以在文件底部修改。) - - 在宝塔应用商店内搜索python并安装项目管理器 ![](https://raw.githubusercontent.com/Evil0ctal/TikTokDownloader_PyWebIO/main/Screenshots/BT_Linux_Panel_Deploy_1.png) @@ -388,21 +207,13 @@ http://localhost(服务器IP):80/bgm?url="复制的(抖音/TikTok)口令/链接" --- - 创建一个项目名字随意 - - 路径选择你上传文件的路径 - - Python版本需要至少3.9以上(在左侧版本管理中自行安装) - - 框架修改为`Flask` - - 启动方式修改为`python` - - 启动文件选择`TikTok_ZH.py` - - 勾选安装模块依赖 - - 开机启动随意 - - 如果宝塔安装了`Nginx`等应用请将其停止或在`TikTok_ZH.py`底部修改端口(默认端口为80) ![](https://raw.githubusercontent.com/Evil0ctal/TikTokDownloader_PyWebIO/main/Screenshots/BT_Linux_Panel_Deploy_2.png) @@ -419,7 +230,7 @@ http://localhost(服务器IP):80/bgm?url="复制的(抖音/TikTok)口令/链接" - 解析完成 -> 单个 +> 单个 ![](https://github.com/Evil0ctal/TikTokDownloader_PyWebIO/blob/main/Screenshots/single_result.png) @@ -447,5 +258,3 @@ http://localhost(服务器IP):80/bgm?url="复制的(抖音/TikTok)口令/链接" --- - -