# -*- coding: utf-8 -*- # @Author: wangkun # @Time: 2022/8/23 import ast import base64 import json import os import subprocess import requests import urllib3 from main.feishu import Feishu proxies = {'http:': None, 'https': None} class Demo: @classmethod def base64_decode(cls): s = 'aHR0cDovL3Y5LXhnLXdlYi1wYy5peGlndWEuY29tLzYzMDJhOWQzNzU1Njc3MWJhN2UyNDdkZGMwM2E0Y2QyLzYzNDI3ZGE5L3ZpZGVvL3Rvcy9jbi90b3MtY24tdmUtNGMwMDEtYWxpbmMyL2ZkNzIwZTc3MWI4NDRlZTZhZDA4MDM5ZmUyYTZiZTI5Lz9hPTE3NjgmY2g9MCZjcj0wJmRyPTAmZXI9MCZjZD0wJTdDMCU3QzAlN0MwJmN2PTEmYnI9NDU3NCZidD00NTc0JmNzPTAmZHM9NCZmdD1XZzNFbE5ONlZVNndKa01acThkekpMZU9ZWmxjem9qLmQyYkxRQWFCdGlabSZtaW1lX3R5cGU9dmlkZW9fbXA0JnFzPTAmcmM9T1RnemFXVTRPVGhrTmpRNGFHVTBhRUJwYW1Sa09UYzZaalpyWmpNek5EY3pNMEJnTFRVMk1pNWZYbDR4TUROaE1TMHlZU011WnpFemNqUXdjbkpnTFMxa0xTOXpjdyUzRCUzRCZsPTIwMjIxMDA5MTQ0ODA0MDEwMjEyMDc0MDgyMDc1QkFEOEU=' base64_url = base64.b64decode(s).decode('utf8') print(base64_url) @classmethod def ffmpeg(cls): video_path = '../videos/陕西第二支预告片,武则天乾陵,气势磅礴,夕阳下拍到神奇的一幕/video1.mp4' audio_path = '../videos/陕西第二支预告片,武则天乾陵,气势磅礴,夕阳下拍到神奇的一幕/audio1.mp4' out_path = '../videos/陕西第二支预告片,武则天乾陵,气势磅礴,夕阳下拍到神奇的一幕/video.mp4' cmd = 'ffmpeg -i ' + video_path + ' -i ' + audio_path + ' -c:v copy -c:a aac -strict experimental -map 0:v:0 -map 1:a:0 ' + out_path print(cmd) subprocess.call(cmd, shell=True) print(os.listdir('../videos/陕西第二支预告片,武则天乾陵,气势磅礴,夕阳下拍到神奇的一幕/')) for file in os.listdir('../videos/陕西第二支预告片,武则天乾陵,气势磅礴,夕阳下拍到神奇的一幕/'): # print(file.title()) if file.split('.mp4')[0] == 'video1' or file.split('.mp4')[0] == 'audio1': os.remove('../videos/陕西第二支预告片,武则天乾陵,气势磅礴,夕阳下拍到神奇的一幕/' + file) @classmethod def sheet(cls, log_type): sheet = Feishu.get_values_batch(log_type, 'xigua', 'e075e9') print(sheet) @classmethod def get_video_info(cls, gid): url = 'https://www.ixigua.com/api/mixVideo/information?' headers = { "accept-encoding": "gzip, deflate, br", "accept-language": "zh-CN,zh-Hans;q=0.9", "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) " "AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15", "referer": "https://www.ixigua.com/7102614741050196520?logTag=0531c88ac04f38ab2c62", } params = { 'mixId': gid, 'msToken': 'IlG0wd0Pylyw9ghcYiB2YseUmTwrsrqqhXrbIcsSaTcLTJyVlbYJzk20zw3UO-CfrfC' 'NVVIOBNjIl7vfBoxnVUwO9ZyzAI3umSKsT5-pef_RRfQCJwmA', 'X-Bogus': 'DFSzswVupYTANCJOSBk0P53WxM-r', '_signature': '_02B4Z6wo0000119LvEwAAIDCuktNZ0y5wkdfS7jAALThuOR8D9yWNZ.EmWHKV0WSn6Px' 'fPsH9-BldyxVje0f49ryXgmn7Tzk-swEHNb15TiGqa6YF.cX0jW8Eds1TtJOIZyfc9s5emH7gdWN94', } cookies = { 'ixigua-a-s': '1', 'msToken': 'IlG0wd0Pylyw9ghcYiB2YseUmTwrsrqqhXrbIcsSaTcLTJyVlbYJzk20zw3UO-CfrfCNVVIOB' 'NjIl7vfBoxnVUwO9ZyzAI3umSKsT5-pef_RRfQCJwmA', 'ttwid': '1%7C_yXQeHWwLZgCsgHClOwTCdYSOt_MjdOkgnPIkpi-Sr8%7C1661241238%7Cf57d0c5ef3f1d7' '6e049fccdca1ac54887c34d1f8731c8e51a49780ff0ceab9f8', 'tt_scid': 'QZ4l8KXDG0YAEaMCSbADdcybdKbUfG4BC6S4OBv9lpRS5VyqYLX2bIR8CTeZeGHR9ee3', 'MONITOR_WEB_ID': '0a49204a-7af5-4e96-95f0-f4bafb7450ad', '__ac_nonce': '06304878000964fdad287', '__ac_signature': '_02B4Z6wo00f017Rcr3AAAIDCUVxeW1tOKEu0fKvAAI4cvoYzV-wBhq7B6D8k0no7lb' 'FlvYoinmtK6UXjRIYPXnahUlFTvmWVtb77jsMkKAXzAEsLE56m36RlvL7ky.M3Xn52r9t1IEb7IR3ke8', 'ttcid': 'e56fabf6e85d4adf9e4d91902496a0e882', '_tea_utm_cache_1300': 'undefined', 'support_avif': 'false', 'support_webp': 'false', 'xiguavideopcwebid': '7134967546256016900', 'xiguavideopcwebid.sig': 'xxRww5R1VEMJN_dQepHorEu_eAc', } urllib3.disable_warnings() response = requests.get(url=url, headers=headers, params=params, cookies=cookies, proxies=proxies, verify=False) if 'data' not in response.json() or response.json()['data'] == '': print(f'response: {response}') else: video_info = response.json()['data']['gidInformation']['packerData']['video'] video_url = '' audio_url = '' video_width = '' video_height = '' # video_url if 'videoResource' not in video_info: video_url = 0 audio_url = 0 video_width = 0 video_height = 0 elif 'dash' in video_info['videoResource']: video_url = video_info['videoResource']['dash']['dynamic_video']['dynamic_video_list'][-1]['main_url'] audio_url = video_info['videoResource']['dash']['dynamic_video']['dynamic_audio_list'][-1]['main_url'] video_url = base64.b64decode(video_url).decode('utf8') audio_url = base64.b64decode(audio_url).decode('utf8') video_width = video_info['videoResource']['dash']['dynamic_video']['dynamic_video_list'][-1]['vwidth'] video_height = video_info['videoResource']['dash']['dynamic_video']['dynamic_video_list'][-1]['vheight'] elif 'normal' in video_info['videoResource']: video_list = video_info['videoResource']['normal']['video_list'] if 'video_4' in video_list.keys(): video_url = video_list['video_4']['main_url'] audio_url = video_list['video_4']['main_url'] video_url = base64.b64decode(video_url).decode('utf8') audio_url = base64.b64decode(audio_url).decode('utf8') video_width = video_list['video_4']['vwidth'] video_height = video_list['video_4']['vheight'] elif 'video_3' in video_list.keys(): video_url = video_list['video_3']['main_url'] audio_url = video_list['video_3']['main_url'] video_url = base64.b64decode(video_url).decode('utf8') audio_url = base64.b64decode(audio_url).decode('utf8') video_width = video_list['video_3']['vwidth'] video_height = video_list['video_3']['vheight'] elif 'video_2' in video_list.keys(): video_url = video_list['video_2']['main_url'] audio_url = video_list['video_2']['main_url'] video_url = base64.b64decode(video_url).decode('utf8') audio_url = base64.b64decode(audio_url).decode('utf8') video_width = video_list['video_2']['vwidth'] video_height = video_list['video_2']['vheight'] elif 'video_1' in video_list.keys(): video_url = video_list['video_1']['main_url'] audio_url = video_list['video_1']['main_url'] video_url = base64.b64decode(video_url).decode('utf8') audio_url = base64.b64decode(audio_url).decode('utf8') video_width = video_list['video_1']['vwidth'] video_height = video_list['video_1']['vheight'] else: video_url = 0 audio_url = 0 video_width = 0 video_height = 0 print(f'video_url:{video_url}') print(f'audio_url:{audio_url}') print(f'video_width:{video_width}') print(f'video_height:{video_height}') @classmethod def get_signature(cls): # line = {'level': 'INFO', # 'message': '{"message":{"method":"Network.responseReceived","params":{"frameId":"A577824F4AEC626A0E7B1E67515C020B","hasExtraInfo":true,"loaderId":"4C8B8024778C547E73056E298C1199CF","requestId":"20233.355","response":{"connectionId":13,"connectionReused":true,"encodedDataLength":572,"fromDiskCache":false,"fromPrefetchCache":false,"fromServiceWorker":false,"headers":{"content-length":"53","content-type":"application/json; charset=utf-8","date":"Thu, 22 Sep 2022 06:21:39 GMT","eagleid":"7c8486d116638276996804276e","server":"Tengine","server-timing":"inner; dur=40, tt_agw; dur=39, cdn-cache;desc=MISS,edge;dur=10,origin;dur=65","strict-transport-security":"max-age=31536000; includeSubDomains","timing-allow-origin":"*","via":"cache31.l2cm9-6[65,0], cache9.cn2049[75,0]","x-agw-info":"xVgLW9WxHAAG33_khm6L2a8ReWONzX5A1dCyebQN9pV1gLCk8dbQVtZIfVMaO031QpBph1oWkhQ6czSXetfTPHLeDeO-Mct8PB8_S1YfgeNXqqjKQOb9DI-AygaTj86mkA9zn3lILbkE6LDqjB0bu9Ap9JlnN3laAz3Geb9M4xZ759bsHBTFySc=","x-content-type-options":"nosniff","x-download-options":"noopen","x-frame-options":"SAMEORIGIN","x-trans-level":"0","x-tt-logid":"20220922142139010151190080030D8357","x-tt-trace-host":"01d3e0070115308d6e7072e1066a5ff763a5d3a58f00e80e220c124847e6eeb9e70d5462c3b67b716c6b5bf35c4f08d47888aaa9af3610c58aac0d0d0ca7ce5d4cef54fa5205a53e5d7ff2f40cc122d0b128cb2b9fb83f9e6a84965a6ad8c66cb3","x-tt-trace-tag":"id=03;cdn-cache=miss;type=dyn","x-xss-protection":"1; mode=block"},"mimeType":"application/json","protocol":"h2","remoteIPAddress":"124.132.134.227","remotePort":443,"responseTime":1.663827699692927e+12,"securityDetails":{"certificateId":0,"certificateTransparencyCompliance":"unknown","cipher":"AES_256_GCM","encryptedClientHello":false,"issuer":"RapidSSL Global TLS RSA4096 SHA256 2022 CA1","keyExchange":"","keyExchangeGroup":"X25519","protocol":"TLS 1.3","sanList":["*.ixigua.com","ixigua.com"],"serverSignatureAlgorithm":2052,"signedCertificateTimestampList":[],"subjectName":"*.ixigua.com","validFrom":1658102400,"validTo":1689638399},"securityState":"secure","status":200,"statusText":"","timing":{"connectEnd":-1,"connectStart":-1,"dnsEnd":-1,"dnsStart":-1,"proxyEnd":-1,"proxyStart":-1,"pushEnd":0,"pushStart":0,"receiveHeadersEnd":109.989,"requestTime":255819.986241,"sendEnd":0.355,"sendStart":0.177,"sslEnd":-1,"sslStart":-1,"workerFetchStart":-1,"workerReady":-1,"workerRespondWithSettled":-1,"workerStart":-1},"url":"https://www.ixigua.com/at/log/c?msToken=G687B1o_7DTeKdhq-9JMQbDxhK1hzpcdN6DTLUn6SWIq9Xo3ziv-DWrsNqqK8PBrvFzrURV18gBiG82keZcfMdht0qng_bRzQhooy8nwITUATUqn5Uqh0OxC2_XRX9j1vy71&X-Bogus=DFSzKwROEFtBHb-lSsScqggX1TFT&_signature=_02B4Z6wo00001v7TvHwAAIDAjPVk4Z9W.GL-w5jAANysmUCNpvb5Srvg6eExeryhDFeyGu4zoN-PpB3S4tD46UJWh9tF.cXH0ggjdznFn8lC79XMTEkl87e.QyQ80f5TS2h0bl5J77lPHbrN59"},"timestamp":255820.192025,"type":"XHR"}},"webview":"A577824F4AEC626A0E7B1E67515C020B"}', # 'timestamp': 1663827699791} # message = line['message'] # message = json.loads(message) # url = message['message']['params']['response']['url'] # print(url) # signature = url.split('_signature=')[-1] # print(signature) s = '_02B4Z6wo000017YitjQAAIDBxARuqbJSv0e2MpKAAI6tf5' print(len(s)) @classmethod def get_logs(cls): logs = {'status': 10, 'message': 'success', 'enable_ssl': True, 'auto_definition': '360p', 'enable_adaptive': True, 'video_id': 'v02004g10000ccuhu33c77u4664aja1g', 'video_duration': 245.1, 'media_type': 'video', 'big_thumbs': [{'img_num': 245, 'uri': 'tos-cn-p-0004/b09ccb86fc744283a46dfeaa427e61f5_1664950300', 'img_url': 'http://p9-sign.douyinpic.com/tos-cn-p-0004/b09ccb86fc744283a46dfeaa427e61f5_1664950300~tplv-noop.image?x-expires=1665301929&x-signature=vVqnvZvxz%2F1GCDJG6uKcuvS7Poc%3D', 'img_urls': [ 'http://p9-sign.douyinpic.com/tos-cn-p-0004/b09ccb86fc744283a46dfeaa427e61f5_1664950300~tplv-noop.image?x-expires=1665301929&x-signature=vVqnvZvxz%2F1GCDJG6uKcuvS7Poc%3D', 'http://p9-sign.douyinpic.com/tos-cn-p-0004/1c1e5c604d564d41ab351885359e60bb_1664950300~tplv-noop.image?x-expires=1665301929&x-signature=fi%2BzDyDooWrRzLZsMTH4DJmHijU%3D', 'http://p9-sign.douyinpic.com/tos-cn-p-0004/f26e5afc8fad4297a53485d14771b49e_1664950300~tplv-noop.image?x-expires=1665301929&x-signature=wv6FCWkC1X3E7KlrATKvwxyq1nQ%3D', 'http://p9-sign.douyinpic.com/tos-cn-p-0004/4b5856dae1924b3da3727fac8598687f_1664950300~tplv-noop.image?x-expires=1665301929&x-signature=XNpi5nD8YkgPKYyPs9QnTSE%2FD6g%3D', 'http://p9-sign.douyinpic.com/tos-cn-p-0004/04954672fc5a4008adeb02ff31747c0d_1664950300~tplv-noop.image?x-expires=1665301929&x-signature=cfwHC9Z%2Fe%2FhrUHNkgH8J7%2F%2FqmD8%3D', 'http://p9-sign.douyinpic.com/tos-cn-p-0004/fef653fa497749c497b0f72aabdbf4c1_1664950300~tplv-noop.image?x-expires=1665301929&x-signature=I7p4DT5NysbCN84KXzv4mhnUfNY%3D', 'http://p9-sign.douyinpic.com/tos-cn-p-0004/f864ee61d88a4618a0e40672562b072d_1664950300~tplv-noop.image?x-expires=1665301929&x-signature=KPL4ibE1KL9x6GQ52PXozpaBUJk%3D', 'http://p9-sign.douyinpic.com/tos-cn-p-0004/4ef78bed7e684489b6cd20c86e5d7f3d_1664950300~tplv-noop.image?x-expires=1665301929&x-signature=6rP%2F2wSIjeP1nFo8Bb3LOqG4fV0%3D', 'http://p9-sign.douyinpic.com/tos-cn-p-0004/70a9232da46645609a2a4a0ba94faad3_1664950300~tplv-noop.image?x-expires=1665301929&x-signature=9%2BEqqsSi6eFoj4UllaD4V8PsYSA%3D', 'http://p9-sign.douyinpic.com/tos-cn-p-0004/1b7bf96e61654b088f5191d3366496ac_1664950300~tplv-noop.image?x-expires=1665301929&x-signature=c1gpR0rIXzb4m8dUGPqazvKdRoE%3D'], 'img_x_size': 240, 'img_y_size': 136, 'img_x_len': 5, 'img_y_len': 5, 'duration': 245.1, 'interval': 1, 'fext': 'jpg'}], 'video_list': { 'video_2': { 'definition': '480p', 'quality': 'normal', 'vtype': 'mp4', 'vwidth': 854, 'vheight': 480, 'bitrate': 1046486, 'real_bitrate': 1046486, 'fps': 30, 'codec_type': 'h264', 'size': 32061722, 'main_url': 'aHR0cDovL3Y5LXhnLXdlYi1wYy5peGlndWEuY29tL2IwYzM1N2Q2OTExYzI1OGE2Yzg0YjFkMTU3ODk1YzA5LzYzNDI3ZGE5L3ZpZGVvL3Rvcy9jbi90b3MtY24tdmUtNGMwMDEtYWxpbmMyLzNmZThkZGM1MjI2ZTRmNDBhOWU3YzUwMTBmZjA3MmFhLz9hPTE3NjgmY2g9MCZjcj0wJmRyPTAmZXI9MCZjZD0wJTdDMCU3QzAlN0MwJmN2PTEmYnI9MTAyMSZidD0xMDIxJmNzPTAmZHM9MiZmdD1XZzNFbE5ONlZVNndKa01acThkekpMZU9ZWmxjem9qLmQyYkxRQWFCdGlabSZtaW1lX3R5cGU9dmlkZW9fbXA0JnFzPTAmcmM9WldRMWFUeGxhR2M1YVdWa09HVTVPVUJwYW1Sa09UYzZaalpyWmpNek5EY3pNMEJlTFdJME5TODBYMk14TkM4MkxURmpZU011WnpFemNqUXdjbkpnTFMxa0xTOXpjdyUzRCUzRCZsPTIwMjIxMDA5MTQ0ODA0MDEwMjEyMDc0MDgyMDc1QkFEOEU=', 'backup_url_1': 'aHR0cDovL3YzLXhnLXdlYi1wYy5peGlndWEuY29tLzg1NzZkODY4NmZlYWIyYTlmZTk0NTBjZWU0YTI0MWRjLzYzNDI3ZGE5L3ZpZGVvL3Rvcy9jbi90b3MtY24tdmUtNGMwMDEtYWxpbmMyLzNmZThkZGM1MjI2ZTRmNDBhOWU3YzUwMTBmZjA3MmFhLz9hPTE3NjgmY2g9MCZjcj0wJmRyPTAmZXI9MCZjZD0wJTdDMCU3QzAlN0MwJmN2PTEmYnI9MTAyMSZidD0xMDIxJmNzPTAmZHM9MiZmdD1XZzNFbE5ONlZVNndKa01acThkekpMZU9ZWmxjem9qLmQyYkxRQWFCdGlabSZtaW1lX3R5cGU9dmlkZW9fbXA0JnFzPTAmcmM9WldRMWFUeGxhR2M1YVdWa09HVTVPVUJwYW1Sa09UYzZaalpyWmpNek5EY3pNMEJlTFdJME5TODBYMk14TkM4MkxURmpZU011WnpFemNqUXdjbkpnTFMxa0xTOXpjdyUzRCUzRCZsPTIwMjIxMDA5MTQ0ODA0MDEwMjEyMDc0MDgyMDc1QkFEOEU=', 'file_id': 'f6460b952a7b4ff6bd7e2b897fe20aab', 'volume': {'loudness': -11.8, 'peak': 1}, 'quality_type': 30, 'encryption_method': '', 'audio_channels': '2.0', 'audio_layout': 'L R', 'url_expire': 1665301929, 'preload_size': 327680, 'preload_interval': 60, 'preload_min_step': 5, 'preload_max_step': 10, 'file_hash': '28fd2c05a84577b2a4f2cd7e5076a0cf', 'p2p_verify_url': 'aHR0cDovL3Y5LXhnLXdlYi1wYy5peGlndWEuY29tL2VmZjk1NDBiYzU3NDQxMWFhNmY5ZTk1YWE2N2ExNDc5LzYzNDI3ZGE5L3ZpZGVvL3Rvcy9jbi90b3MtY24tdmUtNGMwMDEtYWxpbmMyLzRlNzJlZjI4ZTc1MjQ4ZjQ4ODRkODdhMjg1MTBjMmQyLw=='}, 'video_3': {'definition': '720p', 'quality': 'normal', 'vtype': 'mp4', 'vwidth': 1280, 'vheight': 720, 'bitrate': 2107112, 'real_bitrate': 2107112, 'fps': 30, 'codec_type': 'h264', 'size': 64556659, 'main_url': 'aHR0cDovL3Y5LXhnLXdlYi1wYy5peGlndWEuY29tLzBlNjBhOWUwNTM2M2RkMDU1ZTYzMGUzYzU4ZGE0NDYyLzYzNDI3ZGE5L3ZpZGVvL3Rvcy9jbi90b3MtY24tdmUtNGMwMDEtYWxpbmMyL2IzOTY3YTJlN2U4YzQyN2Y4MjliNWExZDgxMjJiNjU5Lz9hPTE3NjgmY2g9MCZjcj0wJmRyPTAmZXI9MCZjZD0wJTdDMCU3QzAlN0MwJmN2PTEmYnI9MjA1NyZidD0yMDU3JmNzPTAmZHM9MyZmdD1XZzNFbE5ONlZVNndKa01acThkekpMZU9ZWmxjem9qLmQyYkxRQWFCdGlabSZtaW1lX3R5cGU9dmlkZW9fbXA0JnFzPTAmcmM9YVRrMk0yVTBaMlU3WlRzMlBEeHBhVUJwYW1Sa09UYzZaalpyWmpNek5EY3pNMEJoTWpReU1UVXhOVEF4WVMweVgxNHVZU011WnpFemNqUXdjbkpnTFMxa0xTOXpjdyUzRCUzRCZsPTIwMjIxMDA5MTQ0ODA0MDEwMjEyMDc0MDgyMDc1QkFEOEU=', 'backup_url_1': 'aHR0cDovL3YzLXhnLXdlYi1wYy5peGlndWEuY29tLzQwOWY3NjNhYmFkNThkYmE5OGI5NDhjZDM0Y2Y2ZGU3LzYzNDI3ZGE5L3ZpZGVvL3Rvcy9jbi90b3MtY24tdmUtNGMwMDEtYWxpbmMyL2IzOTY3YTJlN2U4YzQyN2Y4MjliNWExZDgxMjJiNjU5Lz9hPTE3NjgmY2g9MCZjcj0wJmRyPTAmZXI9MCZjZD0wJTdDMCU3QzAlN0MwJmN2PTEmYnI9MjA1NyZidD0yMDU3JmNzPTAmZHM9MyZmdD1XZzNFbE5ONlZVNndKa01acThkekpMZU9ZWmxjem9qLmQyYkxRQWFCdGlabSZtaW1lX3R5cGU9dmlkZW9fbXA0JnFzPTAmcmM9YVRrMk0yVTBaMlU3WlRzMlBEeHBhVUJwYW1Sa09UYzZaalpyWmpNek5EY3pNMEJoTWpReU1UVXhOVEF4WVMweVgxNHVZU011WnpFemNqUXdjbkpnTFMxa0xTOXpjdyUzRCUzRCZsPTIwMjIxMDA5MTQ0ODA0MDEwMjEyMDc0MDgyMDc1QkFEOEU=', 'file_id': '1fafb95903d84b388b4d814b507356df', 'volume': {'loudness': -11.8, 'peak': 1}, 'quality_type': 10, 'encryption_method': '', 'audio_channels': '2.0', 'audio_layout': 'L R', 'url_expire': 1665301929, 'preload_size': 327680, 'preload_interval': 60, 'preload_min_step': 5, 'preload_max_step': 10, 'file_hash': '85a612adffe0b0e377f698768605250b', 'p2p_verify_url': 'aHR0cDovL3Y5LXhnLXdlYi1wYy5peGlndWEuY29tL2VjMGQ1M2FiOWQzYmNkZjA3OTA4ZjU2ZmExZDc1ZWMxLzYzNDI3ZGE5L3ZpZGVvL3Rvcy9jbi90b3MtY24tdmUtNGMwMDEtYWxpbmMyLzJiMjNiNmU2NDFmMTQ2NGU5ZGI3MWNjMTUzNjA5YjhhLw=='}, 'video_4': {'definition': '1080p', 'quality': 'normal', 'vtype': 'mp4', 'vwidth': 1920, 'vheight': 1080, 'bitrate': 4684078, 'real_bitrate': 4684078, 'fps': 30, 'codec_type': 'h264', 'size': 143508446, 'main_url': 'aHR0cDovL3Y5LXhnLXdlYi1wYy5peGlndWEuY29tLzYzMDJhOWQzNzU1Njc3MWJhN2UyNDdkZGMwM2E0Y2QyLzYzNDI3ZGE5L3ZpZGVvL3Rvcy9jbi90b3MtY24tdmUtNGMwMDEtYWxpbmMyL2ZkNzIwZTc3MWI4NDRlZTZhZDA4MDM5ZmUyYTZiZTI5Lz9hPTE3NjgmY2g9MCZjcj0wJmRyPTAmZXI9MCZjZD0wJTdDMCU3QzAlN0MwJmN2PTEmYnI9NDU3NCZidD00NTc0JmNzPTAmZHM9NCZmdD1XZzNFbE5ONlZVNndKa01acThkekpMZU9ZWmxjem9qLmQyYkxRQWFCdGlabSZtaW1lX3R5cGU9dmlkZW9fbXA0JnFzPTAmcmM9T1RnemFXVTRPVGhrTmpRNGFHVTBhRUJwYW1Sa09UYzZaalpyWmpNek5EY3pNMEJnTFRVMk1pNWZYbDR4TUROaE1TMHlZU011WnpFemNqUXdjbkpnTFMxa0xTOXpjdyUzRCUzRCZsPTIwMjIxMDA5MTQ0ODA0MDEwMjEyMDc0MDgyMDc1QkFEOEU=', 'backup_url_1': 'aHR0cDovL3YzLXhnLXdlYi1wYy5peGlndWEuY29tL2I1NTBkYmZiNmMwMTAzNTBkMWI3NTc1ODI3NWQ2NGYxLzYzNDI3ZGE5L3ZpZGVvL3Rvcy9jbi90b3MtY24tdmUtNGMwMDEtYWxpbmMyL2ZkNzIwZTc3MWI4NDRlZTZhZDA4MDM5ZmUyYTZiZTI5Lz9hPTE3NjgmY2g9MCZjcj0wJmRyPTAmZXI9MCZjZD0wJTdDMCU3QzAlN0MwJmN2PTEmYnI9NDU3NCZidD00NTc0JmNzPTAmZHM9NCZmdD1XZzNFbE5ONlZVNndKa01acThkekpMZU9ZWmxjem9qLmQyYkxRQWFCdGlabSZtaW1lX3R5cGU9dmlkZW9fbXA0JnFzPTAmcmM9T1RnemFXVTRPVGhrTmpRNGFHVTBhRUJwYW1Sa09UYzZaalpyWmpNek5EY3pNMEJnTFRVMk1pNWZYbDR4TUROaE1TMHlZU011WnpFemNqUXdjbkpnTFMxa0xTOXpjdyUzRCUzRCZsPTIwMjIxMDA5MTQ0ODA0MDEwMjEyMDc0MDgyMDc1QkFEOEU=', 'file_id': '5e014bde653143aaa5b6155b9f8005c6', 'quality_type': 0, 'encryption_method': '', 'audio_channels': '2.0', 'audio_layout': 'L R', 'url_expire': 1665301929, 'preload_size': 327680, 'preload_interval': 60, 'preload_min_step': 5, 'preload_max_step': 10, 'file_hash': '6fce2a4001fa60ade6cd3a450d5453bc', 'p2p_verify_url': 'aHR0cDovL3Y5LXhnLXdlYi1wYy5peGlndWEuY29tL2Q2ZTMzNTIxYzM3YTczNmU0Y2EyODQxYThkMGUyMGZkLzYzNDI3ZGE5L3ZpZGVvL3Rvcy9jbi90b3MtY24tdmUtNGMwMDEtYWxpbmMyL2JkYTk5NjZiMzlmODRmMGI4NDAzYTE1ZTZiNmEzNmFlLw=='}, 'video_1': {'definition': '360p', 'quality': 'normal', 'vtype': 'mp4', 'vwidth': 640, 'vheight': 360, 'bitrate': 672859, 'real_bitrate': 672859, 'fps': 30, 'codec_type': 'h264', 'size': 20614718, 'main_url': 'aHR0cDovL3Y5LXhnLXdlYi1wYy5peGlndWEuY29tL2Q0YTNjYTAwZDcyMDZhMzU0MTkyNGQ1Y2EwZDMzOWY5LzYzNDI3ZGE5L3ZpZGVvL3Rvcy9jbi90b3MtY24tdmUtNGMwMDEtYWxpbmMyLzJjYzBmOWJjNmU5MDRlZTY4ZThmYjYxNTE3ZTRmNDNhLz9hPTE3NjgmY2g9MCZjcj0wJmRyPTAmZXI9MCZjZD0wJTdDMCU3QzAlN0MwJmN2PTEmYnI9NjU3JmJ0PTY1NyZjcz0wJmRzPTEmZnQ9V2czRWxOTjZWVTZ3SmtNWnE4ZHpKTGVPWVpsY3pvai5kMmJMUUFhQnRpWm0mbWltZV90eXBlPXZpZGVvX21wNCZxcz0wJnJjPVpUZG1OV1kwWnpjek9XazJPR1UxWmtCcGFtUmtPVGM2WmpaclpqTXpORGN6TTBBdk0yQXdOaTlpTlRFeFhpMHhMelpqWVNNdVp6RXpjalF3Y25KZ0xTMWtMUzl6Y3clM0QlM0QmbD0yMDIyMTAwOTE0NDgwNDAxMDIxMjA3NDA4MjA3NUJBRDhF', 'backup_url_1': 'aHR0cDovL3YzLXhnLXdlYi1wYy5peGlndWEuY29tL2M3ZmVmNDk2NDE1MWE3OWUxMjgyMmZjZWJlOTM4NWRmLzYzNDI3ZGE5L3ZpZGVvL3Rvcy9jbi90b3MtY24tdmUtNGMwMDEtYWxpbmMyLzJjYzBmOWJjNmU5MDRlZTY4ZThmYjYxNTE3ZTRmNDNhLz9hPTE3NjgmY2g9MCZjcj0wJmRyPTAmZXI9MCZjZD0wJTdDMCU3QzAlN0MwJmN2PTEmYnI9NjU3JmJ0PTY1NyZjcz0wJmRzPTEmZnQ9V2czRWxOTjZWVTZ3SmtNWnE4ZHpKTGVPWVpsY3pvai5kMmJMUUFhQnRpWm0mbWltZV90eXBlPXZpZGVvX21wNCZxcz0wJnJjPVpUZG1OV1kwWnpjek9XazJPR1UxWmtCcGFtUmtPVGM2WmpaclpqTXpORGN6TTBBdk0yQXdOaTlpTlRFeFhpMHhMelpqWVNNdVp6RXpjalF3Y25KZ0xTMWtMUzl6Y3clM0QlM0QmbD0yMDIyMTAwOTE0NDgwNDAxMDIxMjA3NDA4MjA3NUJBRDhF', 'file_id': 'fc922b4503af464084ed219c32cc642b', 'volume': {'loudness': -11.8, 'peak': 1}, 'quality_type': 40, 'encryption_method': '', 'audio_channels': '2.0', 'audio_layout': 'L R', 'url_expire': 1665301929, 'preload_size': 327680, 'preload_interval': 60, 'preload_min_step': 5, 'preload_max_step': 10, 'file_hash': 'd63772b8b622cb69d0e7523898d86c2a', 'p2p_verify_url': 'aHR0cDovL3Y5LXhnLXdlYi1wYy5peGlndWEuY29tL2EyZjAxMmQ5YjAzYjViNGIyMzg2YmI1N2Y1YTU5NmNjLzYzNDI3ZGE5L3ZpZGVvL3Rvcy9jbi90b3MtY24tdmUtNGMwMDEtYWxpbmMyLzdjMDJlODhhZWE5MTQxNzJiZmQ1OWE4NjNiNjUwYTQ4Lw=='}}, 'volume': {'loudness': -10.7, 'peak': 1}, 'popularity_level': 0, 'subtitle_langs': [1], 'subtitle_infos': [ {'sub_id': 91724328, 'language_id': 1, 'format': 'webvtt', 'version': 'ASR', 'size': 7123}], 'has_embedded_subtitle': True, 'poster_url': 'http://p9-sign.douyinpic.com/tos-cn-o-0004/4c5f13ba2ef240c480fa913b92d69a1c~tplv-noop.image?x-expires=1665301929&x-signature=mB9JD%2F99mWCj9DuL3US0O%2BhTiu8%3D', 'extraInfos': {'Status': '10', 'Message': 'success', 'LogoType': '', 'VideoModelVersion': 1, 'HelpInfoURL': '', 'LengthOfVideoList': '4', 'IsDynamicVideo': False, 'UserAction': 'VL0', 'AccountName': 'pgc', 'DeniedVideoModelV1JSON': '{"status":2002,"message":"video_play acl deny","enable_ssl":false,"auto_definition":"","enable_adaptive":false,"video_id":"v02004g10000ccuhu33c77u4664aja1g","video_duration":0,"media_type":"","popularity_level":0,"has_embedded_subtitle":false}', 'ResTag': '', 'EncodeUserTag': ''}, 'refreshToken': '51d37647ee443babec3017d7d7808dfcd2fcc3bde6b5c48b35e60f95bdb542d394989351053162fc676a4793d721358f264ae4cb60268320de62b0ba3d2334b8cf4f17336c523f3fddf7ae8e184ebd52299629a7aa3253419e985d6d01c03478f7b299b7c049fea87de9bcc961bd9696_94799a2f6130a20b29f5f31218865db4_76127ed65818729ce27028ecf322e961da1bb4518d6a1e05d3ddf6a6664d0c3f', 'interfaceInfo': {'code': 10, 'message': 'success', 'logid': '20221009144804010212074082075BAD8E', 'api_str': 'isLVideo=false&isDash=true', 'timestamep': 1665298084922}} if __name__ == '__main__': Demo.base64_decode() # Demo.ffmpeg() # Demo.sheet('xigua') # Demo.get_video_info('7133153239867851295') # Demo.get_signature() # Demo.get_logs() pass