From 544bad9c1ff6f71dc3722a9b915ee93a35180548 Mon Sep 17 00:00:00 2001 From: Evil0ctal <20760448+Evil0ctal@users.noreply.github.com> Date: Sat, 6 Nov 2021 18:44:08 -0700 Subject: [PATCH] Add files via upload --- main.py | 78 +++++++++++++++++++++++++++++++++++++++++++++++ requirements.txt | Bin 0 -> 250 bytes 2 files changed, 78 insertions(+) create mode 100644 main.py create mode 100644 requirements.txt diff --git a/main.py b/main.py new file mode 100644 index 0000000..13a86de --- /dev/null +++ b/main.py @@ -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() diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..4e3a3476288fe99bdc184c00a234230a63008e16 GIT binary patch literal 250 zcmZ9G%?^S<5QBR*@lha)5cT52APONdsJm>8FE4)kBL_3-9HyPN%cs*-R