commit 8c4dc111570174fc75ecfebfc7f4a2c5467a35ba Author: 尹舟 <13007110208@163.com> Date: Thu Apr 17 10:22:39 2025 +0800 第一次提交 diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..e833929 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +.venv/ +.idea/ +.deploy/ +logs/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..047d276 --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# douyin + +在项目根目录运行 docker-compose up -d + +项目文档 http://127.0.0.1:1314/docs \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..b3b3f65 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,31 @@ +version: '3.4' +services: + sql-runner: + build: + context: . + dockerfile: Dockerfile + restart: always + container_name: douyin + image: registry.cn-hangzhou.aliyuncs.com/yinzhou_docker_hub/douyin:yz1 + ports: + - "1314:1314" + depends_on: + - douyin_tiktok_download_api + + douyin_tiktok_download_api: # 服务名称 + image: evil0ctal/douyin_tiktok_download_api # 使用的 Docker 镜像 + container_name: douyin_tiktok_download_api # 容器名称 + hostname: douyin_tiktok_download_api + restart: always # 容器退出后总是重启 + volumes: # 挂载卷配置 + - ./douyin_tiktok_download_api/douyin_web/config.yaml:/app/crawlers/douyin/web/config.yaml + - ./douyin_tiktok_download_api/tiktok_web/config.yaml:/app/crawlers/tiktok/web/config.yaml + - ./douyin_tiktok_download_api/tiktok_app/config.yaml:/app/crawlers/tiktok/app/config.yaml + environment: # 环境变量配置 + TZ: Asia/Shanghai # 设置时区为亚洲/上海 +# 需要调试可以打开80端口 +# ports: +# - 80:80 + + +# docker-compose up --build \ No newline at end of file diff --git a/dockerfile b/dockerfile new file mode 100644 index 0000000..5c89afa --- /dev/null +++ b/dockerfile @@ -0,0 +1,20 @@ +# 使用阿里云的 Python 3.11 镜像 +FROM registry.cn-hangzhou.aliyuncs.com/yinzhou_docker_hub/python:3.11-alpine + +# 设置工作目录 +WORKDIR /opt/douyin + +# 设置时区为 Asia/Shanghai +ENV TZ=Asia/Shanghai + +# 将 requirements.txt 文件复制到容器中 +COPY requirements.txt . + +# 安装依赖 +RUN pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple + +# 将其他文件复制到容器中 +COPY . . + +# 运行应用程序 +ENTRYPOINT ["python3", "main.py"] \ No newline at end of file diff --git a/douyin_tiktok_download_api/douyin_web/config.yaml b/douyin_tiktok_download_api/douyin_web/config.yaml new file mode 100644 index 0000000..55eedf4 --- /dev/null +++ b/douyin_tiktok_download_api/douyin_web/config.yaml @@ -0,0 +1,31 @@ +TokenManager: + douyin: + headers: + Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 + # 不要这里的修改User-Agent,请保持默认,否则会导致请求失败。 + # Do not modify User-Agent here, please keep the default, otherwise it will cause request failure. + User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 + Referer: https://www.douyin.com/ + # 你唯一需要修改的地方就是这里的Cookie,然后保存后重启程序即可。 + # The only place you need to modify is the Cookie here, and then save and restart the program. + Cookie: UIFID_TEMP=c3109cf8eab4507640f022360c5ce002c7035d0857c7085fdeb180d1661fca198dd45c89ae8b1523a4d729278f4972f1438d2310a8d41fb8fb6bb468a45b02dec15e10ad03f74f19cf1ab34f53fe7ab1; fpk1=U2FsdGVkX19wMTzjsdTNhwlkYz2LccPOnqyAsxDnjUuQK8itbMqfExggiR21MQcppGN0/8lRCClcVCHbvzu0sQ==; fpk2=a565ccc5e7018c4ec7bec64e38db2966; UIFID=c3109cf8eab4507640f022360c5ce002c7035d0857c7085fdeb180d1661fca198dd45c89ae8b1523a4d729278f4972f11805ee7801f59ed05a4136662b342beacdf453c93ea694f6e46beed0f81626a75a24288dae1fd1120da784783ae553307e3f5ed82f6f1475adb6acc971c101d271219270cf09e8875f0d1ab23c0707a97f7277c0a297014364510456c015b57e1131fbbc67e281392899ad86f8e419d6; volume_info=%7B%22isUserMute%22%3Afalse%2C%22isMute%22%3Atrue%2C%22volume%22%3A0.5%7D; SelfTabRedDotControl=%5B%5D; ttwid=1%7ClnyCaKa9xQJhy48vkNRytaaZTjKYpt-TVLge68nnj7Y%7C1744695371%7C3b5ef192e69a58b3c39a342247d9e8454790cfc5af12693a81eacda72c50b121; s_v_web_id=verify_m9i2kujl_FCTTnrbA_yEvW_4epz_A4wS_f1xIcesPuCPp; dy_swidth=1920; dy_sheight=1080; strategyABtestKey=%221744784578.497%22; passport_csrf_token=82e0e7558b6b51257d45b8134d507588; passport_csrf_token_default=82e0e7558b6b51257d45b8134d507588; __security_mc_1_s_sdk_crypt_sdk=abab3a91-4898-a9e9; __security_mc_1_s_sdk_cert_key=03f7286a-4679-bcf1; __security_mc_1_s_sdk_sign_data_key_web_protect=c8faf4f1-4137-9618; bd_ticket_guard_client_web_domain=2; FORCE_LOGIN=%7B%22videoConsumedRemainSeconds%22%3A180%7D; biz_trace_id=c7358bbc; download_guide=%221%2F20250416%2F0%22; passport_mfa_token=CjWdbBCtQSodU1FFppUH%2Faen8bHAqSipgYvJtNzNIDtJDjPSJtTvezmu1nAWOdQG2rrxA7PUWxpKCjz%2FU%2BmJOJRWCSIDicBQvYJNNs0WbjvTfGZgUQgif%2Bva6XeoHfo5fyoQfUjADuFJjhkWuRxc6TcG0nQQ76QQ5O%2FuDRj2sdFsIAIiAQNYHztq; d_ticket=512ae68a6a5c7159a73233fd10829b1eae06f; passport_assist_user=Cjy4t0-c0TVzHEiII1P1IjH8JEKZpqXp4N_5rDrP5J8GQEhtnjN_y_M2AsgmZ6-U8YQqxW1XCqdWXh2BZHwaSgo8Cph_rC9Z6pht-93dFtZ4ODarbRXs5HtVukWW9ZTbWMpKtO2lMwXjAQFdWA4qkNtMq0ZnBsyuByZiE0bmEITv7g0Yia_WVCABIgEDjK4EPw%3D%3D; n_mh=FYYjPr_2LoyX7pkf59L6USPoY7KVdNANhzfWlX3ljQU; sid_guard=b2b851338502890588e35e37a6807f34%7C1744784669%7C5184000%7CSun%2C+15-Jun-2025+06%3A24%3A29+GMT; uid_tt=a6e09325b0bc531f02d1b0689e647d29; uid_tt_ss=a6e09325b0bc531f02d1b0689e647d29; sid_tt=b2b851338502890588e35e37a6807f34; sessionid=b2b851338502890588e35e37a6807f34; sessionid_ss=b2b851338502890588e35e37a6807f34; is_staff_user=false; sid_ucp_v1=1.0.0-KGNlNjEyNWZlZjA3NjdlNTQ3YzE5NDkyMTJjMDBlNThjZjdkYmQwNTYKHwiN05LqvwIQnZr9vwYY7zEgDDD88ufSBTgHQPQHSAQaAmhsIiBiMmI4NTEzMzg1MDI4OTA1ODhlMzVlMzdhNjgwN2YzNA; ssid_ucp_v1=1.0.0-KGNlNjEyNWZlZjA3NjdlNTQ3YzE5NDkyMTJjMDBlNThjZjdkYmQwNTYKHwiN05LqvwIQnZr9vwYY7zEgDDD88ufSBTgHQPQHSAQaAmhsIiBiMmI4NTEzMzg1MDI4OTA1ODhlMzVlMzdhNjgwN2YzNA; login_time=1744784670813; publish_badge_show_info=%220%2C0%2C0%2C1744784671137%22; _bd_ticket_crypt_cookie=afea02500485290cb779e5299867d619; __security_server_data_status=1; my_rd=2; 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; __ac_nonce=067ff9cd70096c0382793; __ac_signature=_02B4Z6wo00f01FMujUwAAIDBjHV-Aag5QCxTDonAAHM7c9; passport_fe_beating_status=true; IsDouyinActive=true; stream_recommend_feed_params=%22%7B%5C%22cookie_enabled%5C%22%3Atrue%2C%5C%22screen_width%5C%22%3A1920%2C%5C%22screen_height%5C%22%3A1080%2C%5C%22browser_online%5C%22%3Atrue%2C%5C%22cpu_core_num%5C%22%3A12%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%3A50%7D%22; FOLLOW_LIVE_POINT_INFO=%22MS4wLjABAAAAUh0wX-eFyIzNPx2MCFsarCUJ6vm5PRACOSVNXnSJxPI%2F1744819200000%2F0%2F0%2F1744805790230%22; FOLLOW_NUMBER_YELLOW_POINT_INFO=%22MS4wLjABAAAAUh0wX-eFyIzNPx2MCFsarCUJ6vm5PRACOSVNXnSJxPI%2F1744819200000%2F0%2F0%2F1744806390231%22; bd_ticket_guard_client_data=eyJiZC10aWNrZXQtZ3VhcmQtdmVyc2lvbiI6MiwiYmQtdGlja2V0LWd1YXJkLWl0ZXJhdGlvbi12ZXJzaW9uIjoxLCJiZC10aWNrZXQtZ3VhcmQtcmVlLXB1YmxpYy1rZXkiOiJCS0FheG8rM0RKcCtnemxzaGQzWTZhdzNmeXNIMXdJTG12R01YQWVEcTdqM3ltZ1Y3ajhIQS9mSmlxaDdyUmxmc2dld1QzQ1p1WVFYMkIrN3ZEMWU1OG89IiwiYmQtdGlja2V0LWd1YXJkLXdlYi12ZXJzaW9uIjoyfQ%3D%3D; home_can_add_dy_2_desktop=%221%22; odin_tt=8e1394bbbb09e05393b2fba9973452963e832a3c17adf81d017fe8576bea4e32420fd2b6e93f561e4908ae5c771f0247849380023a20fa773b4b05d4b0aa39d37453ab0a4259e89fcb0792ce69beb821 + + proxies: + http: + https: + + msToken: + # 不要修改下面的内容。 + # Do not modify the content below. + url: https://mssdk.bytedance.com/web/report + magic: 538969122 + version: 1 + dataType: 8 + strData: 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 + User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36 Edg/132.0.0.0 + + ttwid: + # 不要修改下面的内容。 + # Do not modify the content below. + url: https://ttwid.bytedance.com/ttwid/union/register/ + data: '{"region":"cn","aid":1768,"needFid":false,"service":"www.ixigua.com","migrate_info":{"ticket":"","source":"node"},"cbUrlProtocol":"https","union":true}' \ No newline at end of file diff --git a/douyin_tiktok_download_api/douyin_web/config1.yaml b/douyin_tiktok_download_api/douyin_web/config1.yaml new file mode 100644 index 0000000..a263a24 --- /dev/null +++ b/douyin_tiktok_download_api/douyin_web/config1.yaml @@ -0,0 +1,32 @@ +TokenManager: + douyin: + headers: + Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 + # 不要这里的修改User-Agent,请保持默认,否则会导致请求失败。 + # Do not modify User-Agent here, please keep the default, otherwise it will cause request failure. + User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36 Edg/132.0.0.0 + Referer: https://www.douyin.com/ + # 你唯一需要修改的地方就是这里的Cookie,然后保存后重启程序即可。 + # The only place you need to modify is the Cookie here, and then save and restart the program. +# Cookie: __ac_nonce=067d687ac00d70af16eab; __ac_signature=_02B4Z6wo00f018O6kmgAAIDAR1H8JrcivBPDi5bAAJdBcf; ttwid=1%7C46sVJ6G5zO0ZRKBqbFef2B13U3CqP9gLwQEH8IV2y6A%7C1742112685%7Cae649397cca7dde21884d5f8e3e3d53eb2361aa64af04cd6889fa71d7f23344b; UIFID_TEMP=986fab8dfc2c74111fac2b883dbdee67777473ded35e2c4bebbf68cc8b91739da61f6b365ad9795b0aa3a8bddce6cc3e39c5d4fd4bad667aaefd3d3ec08baac66fe3b215343f12d8aae84e0a24048f44; douyin.com; device_web_cpu_core=16; device_web_memory_size=-1; architecture=amd64; hevc_supported=true; IsDouyinActive=true; home_can_add_dy_2_desktop=%220%22; dy_swidth=1835; dy_sheight=1147; stream_recommend_feed_params=%22%7B%5C%22cookie_enabled%5C%22%3Atrue%2C%5C%22screen_width%5C%22%3A1835%2C%5C%22screen_height%5C%22%3A1147%2C%5C%22browser_online%5C%22%3Atrue%2C%5C%22cpu_core_num%5C%22%3A16%2C%5C%22device_memory%5C%22%3A0%2C%5C%22downlink%5C%22%3A%5C%22%5C%22%2C%5C%22effective_type%5C%22%3A%5C%22%5C%22%2C%5C%22round_trip_time%5C%22%3A0%7D%22; strategyABtestKey=%221742112685.842%22; volume_info=%7B%22isUserMute%22%3Afalse%2C%22isMute%22%3Afalse%2C%22volume%22%3A0.5%7D; 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%3A0%2C%5C%22is_speed%5C%22%3A1%2C%5C%22is_visible%5C%22%3A1%7D%22; xgplayer_user_id=835787001711; fpk1=U2FsdGVkX19Ke0llbjXpGOOr1Jeel/2GnaSJz41VO3mAFs271jC0hG7gdWlk+2pYLM4GF8TVGtwClCJIXsTKUw==; fpk2=2333b8d335abc6e14aef1caed0ae26fc; s_v_web_id=verify_m8bcww86_XfwSCnmj_5i3F_4Joq_8edO_9gRH9JENh07f; csrf_session_id=6f34e666e71445c9d39d8d06a347a13f; FORCE_LOGIN=%7B%22videoConsumedRemainSeconds%22%3A180%7D; biz_trace_id=c34e5eaf; passport_csrf_token=ab84b3e39ad78e719b236035a27379c0; passport_csrf_token_default=ab84b3e39ad78e719b236035a27379c0; __security_mc_1_s_sdk_crypt_sdk=ac2d56c3-44cd-a161; __security_mc_1_s_sdk_cert_key=ccf2bd2d-4718-b8de; __security_mc_1_s_sdk_sign_data_key_web_protect=9995d368-4e45-b17f; bd_ticket_guard_client_data=eyJiZC10aWNrZXQtZ3VhcmQtdmVyc2lvbiI6MiwiYmQtdGlja2V0LWd1YXJkLWl0ZXJhdGlvbi12ZXJzaW9uIjoxLCJiZC10aWNrZXQtZ3VhcmQtcmVlLXB1YmxpYy1rZXkiOiJCUHR2ZDlUeGU4UlhPaWdIczFqaStJWityQlF4UWZMKytiL2drbXlYUmNrelNua1lQUjJTRVZHVlo4MWFCU0EvSW4xSnBmbzN3TFlvSnhIZTZTV29DTmc9IiwiYmQtdGlja2V0LWd1YXJkLXdlYi12ZXJzaW9uIjoyfQ%3D%3D; bd_ticket_guard_client_web_domain=2; xg_device_score=8.208487995540095; sdk_source_info=7e276470716a68645a606960273f276364697660272927676c715a6d6069756077273f276364697660272927666d776a68605a607d71606b766c6a6b5a7666776c7571273f275e58272927666a6b766a69605a696c6061273f27636469766027292762696a6764695a7364776c6467696076273f275e5827292771273f27303035353c3337343437313234272927676c715a75776a716a666a69273f2763646976602778; bit_env=LVdHnIescW9BCGpo5gGuqIlwNfgj757SBdMhdZXBSWjPWbxp9Nv_B2vUt_LtEvr-ioRv0E9b8N8HWiOHe20JqcUhO4YmpIM6gB83hjgqZfmAhYEbzJR7z2bRViJaPg4xeoyGhwdjwK_Bzogp6uoUs4ov-P4JYzMh78i7jaY5Pzd6h3CaVO-eUKnTiFfUlJo_jmhSfHXGdwkurXwR4lO_UnU4Loqa0YlmDiyi0fPxURFIN5t4Ny6Ua8LLSYcUrBXHlXoQ5G4bQN4XqwuWwT9YauexXbkotU1Jv8pMJUiAhlFIMjbvfTutTSnOXJLoH_JsR_doifURl0wf8CIa_OcYw-A2VglrpbaFU6HDVTKbSRKovzIMY9bUwl_4EAiLBf87g2BU0Uz1MHd_lGNdH3ImEWpLtdRvUsW_KD7q87rPsEGVTceyQ5U3ZlETqoEOwOiggNGu5lL_1O8lt8_7eydeGA%3D%3D; gulu_source_res=eyJwX2luIjoiM2Y3NGJhZDgxMzc3OThkNmVkN2U5ZjM3NDMzNGJkYjMwNzRhYjI0ZWJhMDZkMzdmYWNiNjgzNTY2ZjY0OGUyNCJ9; passport_auth_mix_state=c534f2qcgpohqv4juisp74wq28e90snz + Cookie: __ac_nonce=067ff6c0a008a227014f8; __ac_signature=_02B4Z6wo00f01cBP1AgAAIDAHxQnRYv-8tXAb9CAABfu35; ttwid=1%7C5oa8nK8ne1OX8kDN93vFWlf1JOY6TgdQ9asma5MXr6k%7C1744792586%7C450ee5b8562d629d5704a30a3ef695558d3f76e571b27951530fbee9791381d0; UIFID_TEMP=a061b0aeafc5f81960457244188fc0aa90cbddf27d4ca38da72bcf4a38905bfb799d4c6b9fb941ed420485d07db0b98b777b6cf0bea8ad5035452dd52825bb64ddce346761eaed59868439c13609d3d1; x-web-secsdk-uid=773c5cb9-0fda-4f23-8277-ab1bf6f515c3; s_v_web_id=verify_m9jogi2f_hTubt6Hx_TaUk_43SP_9hGa_gmZq1Ydx29Zu; home_can_add_dy_2_desktop=%220%22; dy_swidth=1920; dy_sheight=1080; stream_recommend_feed_params=%22%7B%5C%22cookie_enabled%5C%22%3Atrue%2C%5C%22screen_width%5C%22%3A1920%2C%5C%22screen_height%5C%22%3A1080%2C%5C%22browser_online%5C%22%3Atrue%2C%5C%22cpu_core_num%5C%22%3A12%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%3A250%7D%22; strategyABtestKey=%221744792589.698%22; fpk1=U2FsdGVkX1/Ih0z+pfktsK+cUSe/mzNDlGOm+VMvnY2IEQ6j4XaOwBzGK8dSnh1hetK9N3kKEEWLsGp84xQzsw==; fpk2=40b65ea82f99d9ae2d2769173a01ce1b; odin_tt=ee6198bf32baa37d6cb62412dc6b5c9829c99bf6b313dda01b4abc7d2562c3d5240d693669dd2ac7cd4a7e40e4b979dde69166143dacf334640636c47703997bdde087180e6f9eee5bf43f94f1d04ce2; passport_csrf_token=9146d307a40a405a72ffeb560d9284ae; passport_csrf_token_default=9146d307a40a405a72ffeb560d9284ae; volume_info=%7B%22isUserMute%22%3Afalse%2C%22isMute%22%3Afalse%2C%22volume%22%3A0.5%7D; UIFID=a061b0aeafc5f81960457244188fc0aa90cbddf27d4ca38da72bcf4a38905bfb799d4c6b9fb941ed420485d07db0b98ba2e4b7478420c4961e4762f2fef397cf7e3e5af25d93e4234557b0d7d5ff80b4a49032cd58be4ac1f98a5bb339b12fd9d4e6e2a76791ca3e28cef45f85f3a69630cd1520b385a33a3ba3034a247841534d3130ee8ca5a64853677e3cd6ee1c0aec592a34d18e63b51edce7cde7a74236; FORCE_LOGIN=%7B%22videoConsumedRemainSeconds%22%3A180%7D; __security_mc_1_s_sdk_cert_key=7e53062b-406a-8e57; __security_mc_1_s_sdk_sign_data_key_web_protect=af472fb1-449a-b036; __security_mc_1_s_sdk_crypt_sdk=3943c233-4151-a6f3; bd_ticket_guard_client_web_domain=2; sdk_source_info=7e276470716a68645a606960273f276364697660272927676c715a6d6069756077273f276364697660272927666d776a68605a607d71606b766c6a6b5a7666776c7571273f275e58272927666a6b766a69605a696c6061273f27636469766027292762696a6764695a7364776c6467696076273f275e5827292771273f273c3430313c30373c3231313234272927676c715a75776a716a666a69273f2763646976602778; bit_env=SbgugFyb-2r81z_2Ilwzd6V5oU5pQDknVn9hpsOxpwU1NgHD8JMa_FWB9Sd9IpgXLp9hFXmrRAn_4zjRGwMu3MCfKomLJWB1FhvO5CcpxvHso-8RO03jCxRyTVy5WlfbBVNo730EXDLteT2HgUjlmmDg6gHDh9SzU2GuyGDh7t0mBam8HaFiz-_bQSvaPbPAyusehYtvv6XBMfOs86gACSUs_qSnIbbxrUjnRx5o0SsM36fccnjoXM3WHpP7Aey-bUWKxF_PX_sbLy5Yqgp3TYLxy8n7FnW8W7POidRXCyv42z7KMZLB1ccGkN8cKniHtY38a9HQkw9AMbm7J3TBdeMCDCbu_hoXP38KAiDiWqm4oHxDN3V-gF14CFww2iZEODsEtzbc4W3B39IBbHciRWJYHFicxDLPGCJZJxfEiLXK4TgPgAcW_PfCwNxoUk45iQTVQFJrZma30KTlxkaZaL6tb5uaqEf1_fW_s6aGOJNOioKpAGGaqC1iZk4J1v1JZdasK6HXNkBBRbTQ7mstM0tmgTcWDsV1EMWSoef3Xas%3D; gulu_source_res=eyJwX2luIjoiYWE5ZDZmYzZmOWQ2NGNjNDI2YTg3ZmVkY2MyMGIzZTI1Y2MwMzZjZWQzZDFmOTA0ZTVmMDYzYzk0NzQzMWIwMyJ9; passport_auth_mix_state=o29ezqa13i8hknigiy7toh0ztd2mdtjq; __security_mc_1_s_sdk_sign_data_key_sso=5ce7e9a5-4456-8cb7; IsDouyinActive=true; biz_trace_id=65110078; bd_ticket_guard_client_data=eyJiZC10aWNrZXQtZ3VhcmQtdmVyc2lvbiI6MiwiYmQtdGlja2V0LWd1YXJkLWl0ZXJhdGlvbi12ZXJzaW9uIjoxLCJiZC10aWNrZXQtZ3VhcmQtcmVlLXB1YmxpYy1rZXkiOiJCTWNVcUJYTEJpVUxoZE15SU5NVG4vM0ZTcmpNeWx3U0xmRGVTcldtTUY4VHFnUmJVZVdLYWp0SDF5N203L3RHNFVCUkVIWEs5YkZPVVlJUW1XMjNXYlE9IiwiYmQtdGlja2V0LWd1YXJkLXdlYi12ZXJzaW9uIjoyfQ%3D%3D; download_guide=%221%2F20250416%2F0%22 + + proxies: + http: + https: + + msToken: + # 不要修改下面的内容。 + # Do not modify the content below. + url: https://mssdk.bytedance.com/web/report + magic: 538969122 + version: 1 + dataType: 8 + strData: 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 + User-Agent: 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.47 + + ttwid: + # 不要修改下面的内容。 + # Do not modify the content below. + url: https://ttwid.bytedance.com/ttwid/union/register/ + data: '{"region":"cn","aid":1768,"needFid":false,"service":"www.ixigua.com","migrate_info":{"ticket":"","source":"node"},"cbUrlProtocol":"https","union":true}' \ No newline at end of file diff --git a/douyin_tiktok_download_api/tiktok_app/config.yaml b/douyin_tiktok_download_api/tiktok_app/config.yaml new file mode 100644 index 0000000..c5993c5 --- /dev/null +++ b/douyin_tiktok_download_api/tiktok_app/config.yaml @@ -0,0 +1,10 @@ +TokenManager: + tiktok: + headers: + User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 + Referer: https://www.tiktok.com/ + Cookie: CykaBlyat=XD + + proxies: + http: + https: \ No newline at end of file diff --git a/douyin_tiktok_download_api/tiktok_web/config.yaml b/douyin_tiktok_download_api/tiktok_web/config.yaml new file mode 100644 index 0000000..0d333b8 --- /dev/null +++ b/douyin_tiktok_download_api/tiktok_web/config.yaml @@ -0,0 +1,25 @@ +TokenManager: + tiktok: + headers: + User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 + Referer: https://www.tiktok.com/ + Cookie: tt_csrf_token=YmksDB6a-h4cT2fF7JpORI2O9UBMCWjsntIc; ttwid=1%7C0FVb9fFc-sjDG2UdJwdC1AirqYozQ0xfbAS4N72vN2Y%7C1713886256%7C78a9d83445b82b73ca8d4e0cf024ea6cdf1329b7f3866c826b0a69a300ebce46; ak_bmsc=51B1D53481A3A4E4D0CEFF2BCF622DA2~000000000000000000000000000000~YAAQ7uIsF6c4j+SOAQAAANmUCxfRGVXZ4D9xnO97l1yDw0OWyomnVkNY7IUKaggUja0kQzFQ+WG4xaxBcPt0AN0n26KeHXGGKgHYpHPUMUBHGHQGDtE4RLyy7U+LPbSJCqVaSDiPuzxHht0YUIbWogvrFmBfkP4ohcmjkZxWtEI9qQ4Whaobb2CFHGdKNt0zlVNBjJQ3uYRAvUe12zSBynQB18y6QhE8goneRkCEw9VIeft2pFIwNQ8tkWWEjDt6wHNaqeND7eASg5WLzYskWbTt6bPAOhSNRLJ38HZrOB5QNg+xxN5uuCSYmjMXCl8SkvQr91pInmOng+V898FLLBQtefs95whvbpfE0mKwBk5Cz2TkkHcUJa/IoC0CLmNqoEk3AtKxpw/J; tt_chain_token=46Xkv2ukMzyJ2e7XU7y0AQ==; bm_sv=A2E67B998DE8E6A4F1C2C02485467446~YAAQ7uIsF6g4j+SOAQAABdqUCxf1J/K4dYG0k7bbw2m5rFujdlSqMoCKDubu4R602nFvbY6zWC5puJczBv3IXwJJRpQxxR03wDCMVlKTCqjQvgDs8BoCuoNQxfY2fdS+F3bKut2lxXPQ2qctqz4kHBrgspJArHn/zu/IuKCIeSzmV4KcyxW6Zvw3/xMRA0MeHgyuHsTRBS+VrFk8Ju2NbJWWC8uSHbLCM/dhFT7/ktw8RE30r24XpQmhLpVTsUSC~1; tiktok_webapp_theme=light; msToken=ySXERzKCE0QUG0cCg6TWLw3wfEB-6kh6kAfuzhzjcQvmV1jBFloSgIsT9xk-QXFVdI99U1Fqb9mhUpIOldoDkjdZwskB8rvt66MHZaHnvBRZRtOKtTYsWT8osDyQXDVZWdPkvyE598h9; passport_csrf_token=1a47d95ebf68fc3648b0018ee75afc9f; passport_csrf_token_default=1a47d95ebf68fc3648b0018ee75afc9f; perf_feed_cache={%22expireTimestamp%22:1714057200000%2C%22itemIds%22:[%227346425092966206766%22%2C%227353812964207594795%22%2C%227343343741916171563%22]}; msToken=yWwG-ITrCnjJbx5ltBa9FTXdCImOJrl-wtQJSQH3afeEumWZcbo_qcrF6F7-NjYcrG6JVxtJiOU208REZeCSgXEZrrs5_65K741fQ7PSzCGOhz6vUyycq3Xvj4Mu-S0kJ6SqyltHnpJp + + proxies: + http: + https: + + msToken: + url: https://mssdk-sg.tiktok.com/web/common?msToken=1Ab-7YxR9lUHSem0PraI_XzdKmpHb6j50L8AaXLAd2aWTdoJCYLfX_67rVQFE4UwwHVHmyG_NfIipqrlLT3kCXps-5PYlNAqtdwEg7TrDyTAfCKyBrOLmhMUjB55oW8SPZ4_EkNxNFUdV7MquA== + magic: 538969122 + version: 1 + dataType: 8 + strData: 3BvqYbNXLLOcZehvxZVbjpAu7vq82RoWmFSJHLFwzDwJIZevE0AeilQfP55LridxmdGGjknoksqIsLqlMHMif0IFK/Br7JWqxOHnYuMwVCnttFc0Y4MFvdVWM5FECiEulJC0Dc+eeVsNSrFnAc9K7fazqdglyJgGLSfXIJmgyCvvQ4pg0u5HBVVugLSWs242X42fjoWymaUCLZJQo6vi6WLyuV7l5IC3Mg+lelr5xBQD6Q7hBIFEw8zzxJ1n2DyA4xLbOHTQdKvEtsK7XzyWwjpRnojPTbBl69Zosnuru+lOBIl+tFu/+hCQ1m0jYZwTP4rVE75L3Du6+KZ5v/9TyFYjq7y3y9bGLP4d7yQueJbF90G1yrZ6htElrZ2vqZKDrIqBVbmOZr/nph12k2JKrITtN0R/pMsp0sJ4gesQnXxcD/pLOFAINHk7umgbe6LzJ7+TLUdGuO4M7xiEg/jCqhjgJX1izZ4NPoBDp35zRxj6Y6OrcstlTN/cv5sz663+Nco/mEwhGq2VwrL4gAIAPycndIsb48dPdtngmLqNDNN0ZyVRjgqVIDXXrxigXCkR9CH89Dlrrb7QQqWVgRXz9/k5ihEM43BR3sd3mMU/XgFLN1Aoxf6GzzdxP2QPBI75/ZoHoAmu54v8gTmA3ntCGlEF0zgaFGTdpkGdb+oZgyQM4pw1aAyxmFINXkpD3IKKoGev9kD9gTFnhiQMGCMemhZS7ZYdbuGu0Cb+lQKaL/QTt80FMyGmW8kzVy9xW/ja9BcdEJYRoaufuFRkBFG5ay8x4WHLR6hEapXqQial/cREbLL4sQytpjtmnndFqvT7xN5DhgsLY2Z7451MJhD6NJXKNrMafGZSbItzQWY= + User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 + + ttwid: + url: https://www.tiktok.com/ttwid/check/ + data: '{"aid":1988,"service":"www.tiktok.com","union":false,"unionHost":"","needFid":false,"fid":"","migrate_priority":0}' + cookie: tt_csrf_token=YmksDB6a-h4cT2fF7JpORI2O9UBMCWjsntIc; ttwid=1%7C0FVb9fFc-sjDG2UdJwdC1AirqYozQ0xfbAS4N72vN2Y%7C1713886256%7C78a9d83445b82b73ca8d4e0cf024ea6cdf1329b7f3866c826b0a69a300ebce46; ak_bmsc=51B1D53481A3A4E4D0CEFF2BCF622DA2~000000000000000000000000000000~YAAQ7uIsF6c4j+SOAQAAANmUCxfRGVXZ4D9xnO97l1yDw0OWyomnVkNY7IUKaggUja0kQzFQ+WG4xaxBcPt0AN0n26KeHXGGKgHYpHPUMUBHGHQGDtE4RLyy7U+LPbSJCqVaSDiPuzxHht0YUIbWogvrFmBfkP4ohcmjkZxWtEI9qQ4Whaobb2CFHGdKNt0zlVNBjJQ3uYRAvUe12zSBynQB18y6QhE8goneRkCEw9VIeft2pFIwNQ8tkWWEjDt6wHNaqeND7eASg5WLzYskWbTt6bPAOhSNRLJ38HZrOB5QNg+xxN5uuCSYmjMXCl8SkvQr91pInmOng+V898FLLBQtefs95whvbpfE0mKwBk5Cz2TkkHcUJa/IoC0CLmNqoEk3AtKxpw/J; tt_chain_token=46Xkv2ukMzyJ2e7XU7y0AQ==; bm_sv=A2E67B998DE8E6A4F1C2C02485467446~YAAQ7uIsF6g4j+SOAQAABdqUCxf1J/K4dYG0k7bbw2m5rFujdlSqMoCKDubu4R602nFvbY6zWC5puJczBv3IXwJJRpQxxR03wDCMVlKTCqjQvgDs8BoCuoNQxfY2fdS+F3bKut2lxXPQ2qctqz4kHBrgspJArHn/zu/IuKCIeSzmV4KcyxW6Zvw3/xMRA0MeHgyuHsTRBS+VrFk8Ju2NbJWWC8uSHbLCM/dhFT7/ktw8RE30r24XpQmhLpVTsUSC~1; tiktok_webapp_theme=light; msToken=ySXERzKCE0QUG0cCg6TWLw3wfEB-6kh6kAfuzhzjcQvmV1jBFloSgIsT9xk-QXFVdI99U1Fqb9mhUpIOldoDkjdZwskB8rvt66MHZaHnvBRZRtOKtTYsWT8osDyQXDVZWdPkvyE598h9; passport_csrf_token=1a47d95ebf68fc3648b0018ee75afc9f; passport_csrf_token_default=1a47d95ebf68fc3648b0018ee75afc9f; perf_feed_cache={%22expireTimestamp%22:1714057200000%2C%22itemIds%22:[%227346425092966206766%22%2C%227353812964207594795%22%2C%227343343741916171563%22]}; msToken=yWwG-ITrCnjJbx5ltBa9FTXdCImOJrl-wtQJSQH3afeEumWZcbo_qcrF6F7-NjYcrG6JVxtJiOU208REZeCSgXEZrrs5_65K741fQ7PSzCGOhz6vUyycq3Xvj4Mu-S0kJ6SqyltHnpJp + odin_tt: + url: https://www.tiktok.com/passport/web/account/info/?aid=1459&app_language=zh-Hans&app_name=tiktok_web&browser_language=zh-CN&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%20NT%2010.0%3B%20Win64%3B%20x64%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F119.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&device_id=7306060721837852167&root_referer=https%3A%2F%2Fwww.tiktok.com%2Flogin%2F \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..9e98b09 --- /dev/null +++ b/main.py @@ -0,0 +1,88 @@ +from fastapi import FastAPI, Query +import uvicorn +import requests +from utils.response import success_response, error_400_response, error_503_response + +app = FastAPI(title="douyin文档", swagger_ui_parameters={ + "defaultModelsExpandDepth": -1 +}) + +DEFAULT_PC_VIDEO_URL = 'https://v.douyin.com/-NvlqBdIJo4/' +DEFAULT_mobile_VIDEO_URL = 'https://v.douyin.com/BCfMrTFPYGQ/' + + +@app.get('/douyin_content', tags=["抖音"], summary="手机和pc获取文案") +def douyin_content(video_url: str = Query(DEFAULT_mobile_VIDEO_URL, min_length=10)): + print(video_url) + if not video_url: + return {"code": 400, "message": "An error occurred.", "data": "请指定video_url"} + + # 获取get请求参数 + url = "http://douyin_tiktok_download_api:80/api/hybrid/video_data" + + querystring = {"url": video_url, "minimal": "false"} + response = requests.request("GET", url, params=querystring) + print(response.text) + try: + if response.json()['code'] == 200: + return success_response({"content": response.json()['data']['seo_info']['ocr_content'], + }) + + except Exception as e: + print(e) + return error_400_response({"data": "解析字段失败."}) + + return error_503_response({"data": "抖音风控稍后请求."}) + + +@app.get('/douyin_pc', tags=["抖音"], summary="返回pc文案和视频") +def douyin_pc(video_url: str = Query(DEFAULT_PC_VIDEO_URL, min_length=10)): + print(video_url) + if not video_url: + return {"code": 400, "message": "An error occurred.", "data": "请指定video_url"} + + # 获取get请求参数 + url = "http://douyin_tiktok_download_api:80/api/hybrid/video_data" + + querystring = {"url": video_url, "minimal": "false"} + response = requests.request("GET", url, params=querystring) + print(response.text) + try: + if response.json()['code'] == 200: + return success_response({"content": response.json()['data']['seo_info']['ocr_content'], + "pc_url": response.json()['data']['video']['bit_rate'][0]['play_addr']['url_list'] + }) + + except Exception as e: + print(e) + return error_400_response({"data": "解析字段失败."}) + + return error_503_response({"data": "抖音风控稍后请求."}) + + +@app.get('/douyin_phone', tags=["抖音"], summary="返回手机视屏地址") +def douyin_phone(video_url: str = Query(DEFAULT_mobile_VIDEO_URL, min_length=10)): + print(video_url) + if not video_url: + return {"code": 400, "message": "An error occurred.", "data": "请指定video_url"} + + # 获取get请求参数 + url = "http://douyin_tiktok_download_api:80/api/hybrid/video_data" + + querystring = {"url": video_url, "minimal": "true"} + response = requests.request("GET", url, params=querystring) + print(response.json()['data']['author']['avatar_thumb']) + try: + if response.json()['code'] == 200: + return success_response({"phone_url": response.json()['data']['author']['avatar_thumb']['url_list'] + }) + + except Exception as e: + print(e) + return error_400_response({"data": "解析字段失败."}) + + return error_503_response({"data": "抖音风控稍后请求."}) + + +if __name__ == '__main__': + uvicorn.run(app='main:app', host='0.0.0.0', port=1314, reload=True) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..cf03a2d Binary files /dev/null and b/requirements.txt differ diff --git a/utils/response.py b/utils/response.py new file mode 100644 index 0000000..be54c5b --- /dev/null +++ b/utils/response.py @@ -0,0 +1,54 @@ +from fastapi import status +from fastapi.responses import JSONResponse + +def success_response(data: dict = None, message: str = "Success"): + return JSONResponse( + status_code=status.HTTP_200_OK, + content={ + "code": 200, + "message": message, + "data": data or {} + } + ) + +def error_response( + code: int = 400, + message: str = "Error", + http_status: int = status.HTTP_400_BAD_REQUEST +): + return JSONResponse( + status_code=http_status, + content={ + "code": code, + "message": message, + "data": None + } + ) + +def error_400_response( + code: int = 400, + message: dict = None, + http_status: int = status.HTTP_400_BAD_REQUEST +): + return JSONResponse( + status_code=http_status, + content={ + "code": code, + "message": message, + "data": None + } + ) + +def error_503_response( + code: int = 503, + message: dict = None, + http_status: int = status.HTTP_503_SERVICE_UNAVAILABLE +): + return JSONResponse( + status_code=http_status, + content={ + "code": code, + "message": message, + "data": None + } + ) \ No newline at end of file