Source code for testbot_tests.douyin_dl3
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
if __name__=="__main__":
[docs] headers = {
'Cookie': 'live_use_vvc=%22false%22; ttwid=1%7CG6lGqi6Ff4CkL7CvVzZUs1d4p1Wlhjt7HJ-6y-m_a10%7C1718359839%7C578cb6fbb8035bd5d8eb032a284e62731ea8c52fabea3d5d25ec23812f196784; xgplayer_user_id=540713429609; bd_ticket_guard_client_web_domain=2; SEARCH_RESULT_LIST_TYPE=%22single%22; UIFID_TEMP=51ca78498d256c95a0dced57d4510398a1a949b0b9c77a6623ae0f8de9c0e7bd6687731578462a35e6440cfea2793336ac550de0caae2b478cd3b342aeaddd0d1045737297af70d960bb15840dfad3a9; fpk1=U2FsdGVkX19cn86sMpnxCTyZelruhAHKmxPtHYJH0A9QtcNaEzzNbsK4pQjQ6CdchDqkxJGzFc+KrhSFX5xaXQ==; fpk2=ce58a5260ba4fa9cdedf4886e4cf45c6; UIFID=51ca78498d256c95a0dced57d4510398a1a949b0b9c77a6623ae0f8de9c0e7bd8518c6df8dc1ba20d6e6bb6ae0d8bccfbbd7ed734b1cfdb15ec9080a1a43f5cb352d2ec4cf7d8a37193952af907a9ea8aff2de45b8559b8abb9e76fd347120c94489e9a3b1a9674c74c9c70f42a2e02412dff3b0b09243af287c88767d3c748210dc22dd04d607bd7a72736930e40abbb3610f30e550389ae0855eecbcbe31b8; __live_version__=%221.1.2.2252%22; s_v_web_id=verify_lztf7ywm_4zA5RL96_bnv5_4Uke_BXUL_Vtk8j1ogZmPa; dy_swidth=1536; dy_sheight=960; passport_csrf_token=36f176a3408c79b116c165ea08bb671e; passport_csrf_token_default=36f176a3408c79b116c165ea08bb671e; download_guide=%223%2F20240814%2F0%22; pwa2=%220%7C0%7C3%7C0%22; xgplayer_device_id=80801261586; __ac_signature=_02B4Z6wo00f01Y0BWtwAAIDBe2hT-FFUQDmNIV5AAAX-1GGEAB9ZaB21OJ9t.dxPXQdLSMi9oCmEoLE8UKshniY2BUzB8uasIRSDglbF2rGAIsfHWpzbT8WIrkQGBNrwqOMK9dfOyub5Us6905; douyin.com; device_web_cpu_core=16; device_web_memory_size=8; architecture=amd64; strategyABtestKey=%221723803732.47%22; csrf_session_id=3b1b688068bbd5595ac78ff25b14047f; FORCE_LOGIN=%7B%22videoConsumedRemainSeconds%22%3A180%2C%22isForcePopClose%22%3A1%7D; n_mh=zZaPBSnkyqtBai3M6tY6vrYoypDErulzJKBWh0Qrs7Q; toutiao_sso_user=b70d55bb894b00add3212b7592a07d53; toutiao_sso_user_ss=b70d55bb894b00add3212b7592a07d53; passport_auth_status=e089787001c932d45db88204c6e6addf%2C; passport_auth_status_ss=e089787001c932d45db88204c6e6addf%2C; is_staff_user=false; __ac_nonce=066bf380000aa4eda554c; _bd_ticket_crypt_doamin=2; _bd_ticket_crypt_cookie=595e2a15361ded4fd2d2625d4739712a; __security_server_data_status=1; publish_badge_show_info=%220%2C0%2C0%2C1723807766475%22; store-region=cn-sd; store-region-src=uid; FOLLOW_LIVE_POINT_INFO=%22MS4wLjABAAAAqZoS-o-UF_qYha33xhRR8WdUbd8y7AUI4-cUMA-k4XE%2F1723824000000%2F1723807787495%2F1723807757815%2F0%22; xg_device_score=7.6193612098364385; volume_info=%7B%22isUserMute%22%3Afalse%2C%22isMute%22%3Atrue%2C%22volume%22%3A0.554%7D; sso_uid_tt=36fd926168b8b682239a5bccdb657c67; sso_uid_tt_ss=36fd926168b8b682239a5bccdb657c67; sid_ucp_sso_v1=1.0.0-KDJjOWM0ZWQxNWZjMzBkZGM4OGM1MWNmNDMzNDM3NjEzNWU0ZWU1MGIKCRDg9fy1BhjvMRoCbGYiIGI3MGQ1NWJiODk0YjAwYWRkMzIxMmI3NTkyYTA3ZDUz; ssid_ucp_sso_v1=1.0.0-KDJjOWM0ZWQxNWZjMzBkZGM4OGM1MWNmNDMzNDM3NjEzNWU0ZWU1MGIKCRDg9fy1BhjvMRoCbGYiIGI3MGQ1NWJiODk0YjAwYWRkMzIxMmI3NTkyYTA3ZDUz; sid_guard=a71eb1a258f4d5836d2d974aaac9c94f%7C1723808481%7C21600%7CFri%2C+16-Aug-2024+17%3A41%3A21+GMT; uid_tt=59b0f0eb529323e75c4c8c06d9c7d455; uid_tt_ss=59b0f0eb529323e75c4c8c06d9c7d455; sid_tt=a71eb1a258f4d5836d2d974aaac9c94f; sessionid=a71eb1a258f4d5836d2d974aaac9c94f; sessionid_ss=a71eb1a258f4d5836d2d974aaac9c94f; sid_ucp_v1=1.0.0-KDAyMTI4ZDUxZDJjOTA1OWIzMWIyNmY3NjcxNjU2OTI2NGYzYTBhZWUKCBDh9fy1BhgNGgJscSIgYTcxZWIxYTI1OGY0ZDU4MzZkMmQ5NzRhYWFjOWM5NGY; ssid_ucp_v1=1.0.0-KDAyMTI4ZDUxZDJjOTA1OWIzMWIyNmY3NjcxNjU2OTI2NGYzYTBhZWUKCBDh9fy1BhgNGgJscSIgYTcxZWIxYTI1OGY0ZDU4MzZkMmQ5NzRhYWFjOWM5NGY; odin_tt=421d97515f5c5cb073b1d91fbca72c15935fc3b22a3b8f1e7cba0da9d205490de1e5a03ac9c2681622fcb21d8314efb70d8b78a8736671637867ee6e3ce89fcd2316d6e726920636cea43b13505e4e57; passport_fe_beating_status=false; WallpaperGuide=%7B%22showTime%22%3A1723615106441%2C%22closeTime%22%3A0%2C%22showCount%22%3A1%2C%22cursor1%22%3A63%2C%22cursor2%22%3A0%7D; stream_recommend_feed_params=%22%7B%5C%22cookie_enabled%5C%22%3Atrue%2C%5C%22screen_width%5C%22%3A1536%2C%5C%22screen_height%5C%22%3A960%2C%5C%22browser_online%5C%22%3Atrue%2C%5C%22cpu_core_num%5C%22%3A16%2C%5C%22device_memory%5C%22%3A8%2C%5C%22downlink%5C%22%3A10%2C%5C%22effective_type%5C%22%3A%5C%224g%5C%22%2C%5C%22round_trip_time%5C%22%3A100%7D%22; stream_player_status_params=%22%7B%5C%22is_auto_play%5C%22%3A0%2C%5C%22is_full_screen%5C%22%3A0%2C%5C%22is_full_webscreen%5C%22%3A0%2C%5C%22is_mute%5C%22%3A1%2C%5C%22is_speed%5C%22%3A1%2C%5C%22is_visible%5C%22%3A0%7D%22; IsDouyinActive=true; home_can_add_dy_2_desktop=%221%22; bd_ticket_guard_client_data=eyJiZC10aWNrZXQtZ3VhcmQtdmVyc2lvbiI6MiwiYmQtdGlja2V0LWd1YXJkLWl0ZXJhdGlvbi12ZXJzaW9uIjoxLCJiZC10aWNrZXQtZ3VhcmQtcmVlLXB1YmxpYy1rZXkiOiJCS2YzVEJvZW5vTFZ5THVzOHRBREhDaGo3elh4MmZUOW9xMW9oK2orSlU2OFEwcnRycU4xNHFQS1U1bHhmajdMNUkvLzNXRkJocktOMW1hb2VWdDk5WlE9IiwiYmQtdGlja2V0LWd1YXJkLXdlYi12ZXJzaW9uIjoxfQ%3D%3D; biz_trace_id=aec030d4',
'Referer': 'https://www.douyin.com/user/MS4wLjABAAAA3q_M7SAG4eQnFrskafFBDLnycg_2s21oi7Q_aI42C2Q',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0'
}
url = 'https://www.douyin.com/aweme/v1/web/aweme/post/?device_platform=webapp&aid=6383&channel=channel_pc_web&sec_user_id=MS4wLjABAAAA3q_M7SAG4eQnFrskafFBDLnycg_2s21oi7Q_aI42C2Q&max_cursor=0&locate_query=false&show_live_replay_strategy=1&need_time_list=1&time_list_query=0&whale_cut_token=&cut_version=1&count=18&publish_video_strategy_type=2&update_version_code=170400&pc_client_type=1&version_code=290100&version_name=29.1.0&cookie_enabled=true&screen_width=1536&screen_height=960&browser_language=zh-CN&browser_platform=Win32&browser_name=Edge&browser_version=120.0.0.0&browser_online=true&engine_name=Blink&engine_version=120.0.0.0&os_name=Windows&os_version=10&cpu_core_num=16&device_memory=8&platform=PC&downlink=10&effective_type=4g&round_trip_time=100&webid=7380299229899687463&msToken=8gdJJvLIyhS_BJtjtw7Fqu6mNVZbrR4qZwUd91GW7-zTxDLPHRc2ihWTkedEWHw8Toe1qvjz8KnzrBxK28MRww8keaOC98zmHIP3prq_ntj3oKTSSHJZObYF0oTkHHg%3D&a_bogus=Yv80QmhkDDDNXd6h5UCLfY3q6lZ3Ypsn0trEMD2fmVVbsg39HMPY9exErhTva26jN4%2FkIbfjy4hSYpqMxQIbA3v6HSRKlICh-g00t-P2so0j5ZhjCfukrUmF-vzWt-Bp-JV3EcvMoJKrFRw0AIee-wHvnwVxapt2&verifyFp=verify_lztf7ywm_4zA5RL96_bnv5_4Uke_BXUL_Vtk8j1ogZmPa&fp=verify_lztf7ywm_4zA5RL96_bnv5_4Uke_BXUL_Vtk8j1ogZmPa'
res = requests.get(url, headers=headers)
aweme_list = res.json().get("aweme_list")
for aweme in aweme_list:
title = aweme.get("desc")
url = aweme.get("video").get("play_addr").get("url_list")[-1]
res = requests.get(url)
with open(f"{title}.mp4", "wb") as f:
f.write(res.content)
print(f"{title}下载成功!")