mirror of
https://github.com/Evil0ctal/Douyin_TikTok_Download_API.git
synced 2025-04-20 04:19:57 +08:00
Add files via upload
This commit is contained in:
parent
dcb8cd171f
commit
544bad9c1f
78
main.py
Normal file
78
main.py
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- encoding: utf-8 -*-
|
||||||
|
# @Author: https://github.com/Evil0ctal/
|
||||||
|
# @Time: 2021/11/06
|
||||||
|
# @Update: 2021/11/06
|
||||||
|
# @Function:
|
||||||
|
# Get the TikTok shared text entered by the user
|
||||||
|
# And display it on the web page after being parsed in the background.
|
||||||
|
|
||||||
|
from pywebio.input import *
|
||||||
|
from pywebio.output import *
|
||||||
|
import requests
|
||||||
|
import re
|
||||||
|
import json
|
||||||
|
|
||||||
|
|
||||||
|
def find_url(string):
|
||||||
|
# 解析抖音分享口令中的链接并返回列表
|
||||||
|
url = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', string)
|
||||||
|
return url
|
||||||
|
|
||||||
|
|
||||||
|
def valid_check(kou_ling):
|
||||||
|
# 校验输入的内容
|
||||||
|
if find_url(kou_ling):
|
||||||
|
return None
|
||||||
|
else:
|
||||||
|
return '抖音分享口令有误!'
|
||||||
|
|
||||||
|
|
||||||
|
def get_video_info(url):
|
||||||
|
# 利用官方接口解析链接信息
|
||||||
|
headers = {'user-agent': 'Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Mobile Safari/537.36 Edg/87.0.664.66'}
|
||||||
|
try:
|
||||||
|
r = requests.get(url=find_url(url)[0])
|
||||||
|
key = re.findall('video/(\d+)?', str(r.url))[0]
|
||||||
|
jx_url = f'https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids={key}'
|
||||||
|
js = json.loads(requests.get(url=jx_url, headers=headers).text)
|
||||||
|
# 去水印后视频链接
|
||||||
|
video_url = str(js['item_list'][0]['video']['play_addr']['url_list'][0]).replace('playwm', 'play')
|
||||||
|
# 视频标题
|
||||||
|
video_title = str(js['item_list'][0]['desc'])
|
||||||
|
# 视频作者昵称
|
||||||
|
video_author = str(js['item_list'][0]['author']['nickname'])
|
||||||
|
# 视频作者抖音号
|
||||||
|
video_author_id = str(js['item_list'][0]['author']['unique_id'])
|
||||||
|
# 返回包含数据的列表
|
||||||
|
video_info = [video_url, video_title, video_author, video_author_id]
|
||||||
|
return video_info
|
||||||
|
except:
|
||||||
|
print("无法解析输入内容,请检查输入内容及网络,如多次尝试仍失败,请移步GitHub提交issue。")
|
||||||
|
print("https://github.com/Evil0ctal/")
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
placeholder = "格式: 1.02 GIi:/电动车真环保吗? https://v.douyin.com/RATN1fk/ 复制此链接,打开Dou音搜索,直接观看视频!"
|
||||||
|
kou_ling = input('请将抖音分享的口令粘贴于此', type=TEXT, validate=valid_check, required=True, placeholder=placeholder)
|
||||||
|
if kou_ling:
|
||||||
|
try:
|
||||||
|
video_info = get_video_info(kou_ling)
|
||||||
|
print(video_info)
|
||||||
|
put_table([
|
||||||
|
['类型', '内容'],
|
||||||
|
['无水印链接', put_link('点击打开视频', video_info[0])],
|
||||||
|
['视频标题', video_info[1]],
|
||||||
|
['作者昵称', video_info[2]],
|
||||||
|
['作者抖音ID', video_info[3]],
|
||||||
|
])
|
||||||
|
except:
|
||||||
|
put_text("无法解析输入内容,请检查输入内容及网络,如多次尝试仍失败,请移步GitHub提交issue。")
|
||||||
|
put_link('Github: Evil0ctal', 'https://github.com/Evil0ctal/')
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
# First Time to do :
|
||||||
|
# pip install -r requirements.txt
|
||||||
|
while True:
|
||||||
|
main()
|
BIN
requirements.txt
Normal file
BIN
requirements.txt
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user