diff --git a/README.en.md b/README.en.md index 863822a..2d64525 100644 --- a/README.en.md +++ b/README.en.md @@ -15,25 +15,27 @@ Language: \[[English](https://github.com/Evil0ctal/TikTokDownloader_PyWebIO/blo 🛰API demo: +💾iOS Shortcuts:[Click to get instructions](https://www.icloud.com/shortcuts/e8243369340548efa0d4c1888dd3c170)Updated on 2022/02/06 + This project uses[PyWebIO](https://github.com/pywebio/PyWebIO)、[Requests](https://github.com/psf/requests)、[Flask](https://github.com/pallets/flask), using Python to implement online batch parsing of Douyin's watermark-free video/atlas. It can be used to download videos that the author prohibits to download, and can be used with[iOS Shortcuts APP](https://apps.apple.com/cn/app/%E5%BF%AB%E6%8D%B7%E6%8C%87%E4%BB%A4/id915249334)Cooperate with this project API to realize in-app download. +The shortcut command needs to be in the Douyin or TikTok app, select the video you want to save, click the share button, and then find the option "Douyin TikTok without watermark download", if you encounter a notification asking whether to allow the shortcut command to access xxxx (domain name) or server), you need to click Allow to use it normally. + ## 💯 Supported features: - Support Douyin video/atlas parsing - - Support overseas TikTok video analysis (no atlas analysis) - - Support batch parsing (support Douyin/TikTok hybrid parsing) - - Support API calls +- support[iOS Shortcuts](https://apps.apple.com/cn/app/%E5%BF%AB%E6%8D%B7%E6%8C%87%E4%BB%A4/id915249334)Realize in-app download of video/atlas without watermark * * * -## 🤦‍♂️Follow-up features: +## 🤦‍♂️后续功能: -- [ ] match[iOS Shortcuts APP](https://apps.apple.com/cn/app/%E5%BF%AB%E6%8D%B7%E6%8C%87%E4%BB%A4/id915249334)Realize in-app downloads (lazy, come and write for help) +- [ ] I do not know either : ) * * * @@ -45,7 +47,7 @@ It can be used to download videos that the author prohibits to download, and can pip install -r requirements.txt ``` -- Run TikTok_ZH.py (Python version 3.9 or above) +- 运行TikTok_ZH.py (Python版本需3.9以上) ```text python3 TikTok_ZH.py @@ -60,26 +62,33 @@ http://localhost(服务器IP):80/ ## 🗺️ Supported submission formats: -- share password +- Douyin share password (copy in APP) ```text 例子:7.43 pda:/ 让你在几秒钟之内记住我 https://v.douyin.com/L5pbfdP/ 复制此链接,打开Dou音搜索,直接观看视频! ``` -- Short URL +- Douyin Short URL (Copy in APP) ```text -例子:https://v.douyin.com/RHnWEng/ +例子:https://v.douyin.com/L4FJNR3/ ``` -- normal url +- Douyin normal URL (web version copy) ```text 例子: https://www.douyin.com/video/6914948781100338440 ``` -- TikTok URL +- TikTok Short URL (In-App Copy) + +```text +例子: +https://vm.tiktok.com/TTPdkQvKjP/ +``` + +- TikTok normal URL (copy from web version) ```text 例子: @@ -140,214 +149,25 @@ http://localhost(服务器IP):80/api?url="复制的(抖音/TikTok)口令/链接" } ``` -> TikTok videos +> 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=" } ``` @@ -376,7 +196,6 @@ For example: the project is deployed on a domestic server, and the person is in > Deploy using the Pagoda Linux panel - First go to the security group to open port 80 (default 80, which can be modified at the bottom of the file.) - - Search for python in the pagoda app store and install the project manager ![](https://raw.githubusercontent.com/Evil0ctal/TikTokDownloader_PyWebIO/main/Screenshots/BT_Linux_Panel_Deploy_1.png) @@ -384,21 +203,13 @@ For example: the project is deployed on a domestic server, and the person is in * * * - Create a project with an arbitrary name - - Path select the path where you upload the file - - The Python version needs to be at least 3.9 or above (install it by yourself in the version management on the left) - - The frame is modified to`Flask` - - The startup method is changed to`python` - - Startup file selection`TikTok_ZH.py` - - Check install module dependencies - - Start at will - - If the pagoda is installed`Nginx`wait for the application to stop it or`TikTok_ZH.py`Modify the port at the bottom (the default port is 80) ![](https://raw.githubusercontent.com/Evil0ctal/TikTokDownloader_PyWebIO/main/Screenshots/BT_Linux_Panel_Deploy_2.png) @@ -427,7 +238,7 @@ For example: the project is deployed on a domestic server, and the person is in * * * -- API submit/return +- API提交/返回 > Video return value