Update all local changes
This commit is contained in:
parent
3557a87902
commit
9a4cd8d17d
43 changed files with 10045 additions and 880 deletions
32
Dockerfile.dev
Normal file
32
Dockerfile.dev
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
# PureStream Development Dockerfile
|
||||||
|
# Copies all files to avoid Synology Drive volume mount issues
|
||||||
|
|
||||||
|
FROM mcr.microsoft.com/playwright/python:v1.49.1-jammy
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Copy backend files
|
||||||
|
COPY backend/ /app/backend/
|
||||||
|
|
||||||
|
# Copy pre-built frontend
|
||||||
|
COPY frontend/dist/ /app/frontend/dist/
|
||||||
|
|
||||||
|
# Create directories for cache and session
|
||||||
|
RUN mkdir -p /app/cache /app/session
|
||||||
|
|
||||||
|
# Install Python dependencies
|
||||||
|
WORKDIR /app/backend
|
||||||
|
RUN pip install --no-cache-dir -r requirements.txt && \
|
||||||
|
pip install playwright-stealth && \
|
||||||
|
playwright install chromium
|
||||||
|
|
||||||
|
# Environment variables
|
||||||
|
ENV PYTHONUNBUFFERED=1
|
||||||
|
ENV CACHE_DIR=/app/cache
|
||||||
|
ENV MAX_CACHE_SIZE_MB=500
|
||||||
|
ENV CACHE_TTL_HOURS=24
|
||||||
|
ENV ADMIN_PASSWORD=admin123
|
||||||
|
|
||||||
|
EXPOSE 8002
|
||||||
|
|
||||||
|
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8002"]
|
||||||
129
all_responses.jsonl
Normal file
129
all_responses.jsonl
Normal file
|
|
@ -0,0 +1,129 @@
|
||||||
|
{"url": "https://www.tiktok.com/tiktok/ppf/api/eligibility/v2?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["eligibility_list", "log_pb", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/search/suggest/guide/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&keyword=hot%20trend&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&req_source=related_search&screen_height=720&screen_width=1280&search_source=general&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["status_code", "status_msg", "log_id"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/v1/web-cookie-privacy/config?locale=en&appId=1988&theme=default&tea=1", "keys": ["statusCode", "body"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/user/following/request/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&count=20&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&max_time=0&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_id=6884525631502042113&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=jhXxTsWcFmk_mxeFu7FVJiU1QpT6j4Zp2Nn0qifCVaIby2I_sTTuDVNUkMQWFG9ordYXjeJlzMTZolItuDhSYwLRAz_GzTBIpIvZam_hKjpZ8EMK_CXdajfNMn02SK4cyJpN8W_Zp9bLaZgnqgww0GB92TEn-w==&X-Bogus=DFSzKIVO-avANJZMCu50sqwyWdbd&X-Gnarly=MODLMnkXmGDYM-RZIqNJo5P3I3iKVU4-ROxu/zgXHmHF1GlS5rbkCViztUnTximoSBmQfr6cWmY46hO43RRgn0/2SBgce7QYB52f8tKadmNwnXv1ZD-5tsY8DZXaU4Pidg/wiZ2pjvpMCunSTNQjeYpDIvSbU-Bw/o4ysdC91vwqM5JNFmmfNrVKVnI-UTmw122gL51cBFo0l/rOeSjD7tx4PVjsGKCrlVsjlS/hnJipqQiPrx-rpjUB0hluLPPOujw1G2VDUfp/NhRavAEySbLdyWSNdBDLLIrWGMWaLe73NqfTCqr6SVNXS0YRho8tpgv=", "keys": ["extra", "has_more", "log_pb", "min_time", "myself_user_id", "request_users", "status_code", "status_msg", "total"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/inbox/notice_count/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["extra", "log_pb", "notice_count", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/ba/business/suite/permission/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&permissionList=001004%2C001005&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=jhXxTsWcFmk_mxeFu7FVJiU1QpT6j4Zp2Nn0qifCVaIby2I_sTTuDVNUkMQWFG9ordYXjeJlzMTZolItuDhSYwLRAz_GzTBIpIvZam_hKjpZ8EMK_CXdajfNMn02SK4cyJpN8W_Zp9bLaZgnqgww0GB92TEn-w==&X-Bogus=DFSzKIVO7R2ANJZMCu50sqwyWdoI&X-Gnarly=MHZcQSvFRnP6hV4aoUmFevG1F48XF8MczeAnSsZ8mYBsV/FxjdUEeyyLbg77rF8pMvmXK6tzUTso4--zoYaiVWfSAbwG8cZEQmFBo939R5e0nBS5qQ4r6M/kVtnbK76085WakKd4cwjWI8IILvu1/600gsSX8yyRH3kWuBmoI45HKLYkTz0YgL/vUFYBmhs88DiXH4IVpHnerEaTp5msnkFPOACVQpAt0KcHwjQUpJXphJl2XCBhPGcmBOa8ythBh3OZ0JvPvQbh0pyxglrqMgF5aCS60X7yRRARAXjykPnG3B5idTtl94IBBJzm2vCL/MI=", "keys": ["statusCode", "statusMsg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/feedback/v1/newest_reply/?WebIdLastTime=1758119023&aid=1284&app_key=tiktok-web&app_language=en&app_name=tiktok_web&appkey=tiktok-web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&clear_unread=false&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&iid=0&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["err_code", "message", "data", "pushResult"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/ba/business/suite/permission/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&permissionList=001004%2C001005&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=jhXxTsWcFmk_mxeFu7FVJiU1QpT6j4Zp2Nn0qifCVaIby2I_sTTuDVNUkMQWFG9ordYXjeJlzMTZolItuDhSYwLRAz_GzTBIpIvZam_hKjpZ8EMK_CXdajfNMn02SK4cyJpN8W_Zp9bLaZgnqgww0GB92TEn-w==&X-Bogus=DFSzKIVO7R2ANJZMCu50sqwyWdoI&X-Gnarly=MaaOIhywqCVcMM4KJXtNFAAXlad7HcQgYofYVCHatg9bS4aLsaryqsZ63ny8Cp9IJ5FWCCG/yoRDt-GkFdyjVpuEfBP1Xp5iEroxv7ofDeCqK-ycCxDYFrgb/93IyIiGPTMQKciMI9IgDDQbaiACEvCt567-3l71mMyH91w-KambvDEkzWded1gcb6Ia-DpPf4//zhCXHPqcJapCGZpnPYr0iPmZuCb/Ckt3GD/S3LnT9IYn5WKbjdWNA3Tgx6eNVpH/hiPL11zLqqUK/b4f6QHsJyLdu5Zgg2Ab6eAyi7aD0Nmip7aBqeCAL-09JHytxrG=", "keys": ["statusCode", "statusMsg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/ba/business/suite/permission/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&permissionList=001004%2C001005&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=jhXxTsWcFmk_mxeFu7FVJiU1QpT6j4Zp2Nn0qifCVaIby2I_sTTuDVNUkMQWFG9ordYXjeJlzMTZolItuDhSYwLRAz_GzTBIpIvZam_hKjpZ8EMK_CXdajfNMn02SK4cyJpN8W_Zp9bLaZgnqgww0GB92TEn-w==&X-Bogus=DFSzKIVO7R2ANJZMCu50sqwyWdoI&X-Gnarly=MJB4Uq5Ln3OxLENWtzqcp6uk7e1wG4yuyGVhOFfbuKcJEgAhMUZ/R6QjtXNt58C1rH5gNryrqhJOlMMXkB1bjqLmNXKtv6kc8Cjr8Av50yQCq24GE3ntt4sR6U9S07VIX5K0mTaZ/3EsMPpwfbK1J8AtRWEeqvas9aheEzAX9IUWG3XOdjssb-sKHtZiWxJLQFnBSkEeyeReJSY5u1mEn5-uw8CEr5D0ItA8Z1SLsD/BhnXNzWcSu/KJ3xnRSjrHR34mJIxht8FqzrYdTmoDqJGaYpGt0tyGG8SjgtJQunPHT1IYkc7W7LOKTDv9rnTcriR=", "keys": ["statusCode", "statusMsg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/user/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&clientABVersions=70508271%2C72437276%2C73720541%2C74087155%2C74444735%2C74534793%2C74757743%2C74782565%2C74879363%2C74926160%2C75004380%2C75004402%2C75014048%2C75030792%2C75132380%2C75150719%2C75163115%2C75183089%2C75204947%2C75207601%2C75224161%2C75227408%2C75236328%2C75248304%2C75252005%2C75257252%2C75266020%2C75269551%2C75289530%2C75308229%2C75312670%2C75328674%2C75331578%2C75331914%2C75334097%2C75341153%2C75350407%2C75352865%2C75352896%2C75358321%2C75373599%2C70138197%2C70156809%2C70405643%2C71057832%2C71200802%2C71381811%2C71516509%2C71803300%2C71962127%2C72360691%2C72408100%2C72854054%2C72892778%2C73004916%2C73171280%2C73208420%2C73952802%2C73952825%2C73989921%2C74008524%2C74276218%2C74413136%2C74844724%2C75330961&cookie_enabled=true&count=5&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&maxCursor=0&minCursor=0&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&scene=21&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=jhXxTsWcFmk_mxeFu7FVJiU1QpT6j4Zp2Nn0qifCVaIby2I_sTTuDVNUkMQWFG9ordYXjeJlzMTZolItuDhSYwLRAz_GzTBIpIvZam_hKjpZ8EMK_CXdajfNMn02SK4cyJpN8W_Zp9bLaZgnqgww0GB92TEn-w==&X-Bogus=DFSzKIVOs/vANJZMCu50sqwyWdb2&X-Gnarly=MCQNrzPzg6mGKi2E5ut2prctYLeCfVpFnmbdipb2qqj4xUgRP9HMykvs7wrw8mM911iSc68nBiGpP097elfkJDAStxtim55kX2DWbKu9RH1Cxq35Nfpxz5-1UN6X1Z/ARRm6/kIG-cQJzOM9UyiulvJmG3LhOxOL98mMLV26zdkb2wO8t1lNQ61sYKzY6iMQbBZBpYq30iPndHwN4QGerFQG4L1KHMLPY5RcR/L5zY4ohyER9mFrI2D3OWP98gRWGX95ATRHNVYItz1p-j531VaO6iuwyMdaXjSJ63K99BO9wwl82Tt5XZocmnIwtQt7FkG=", "keys": ["extra", "hasMore", "isTruncated", "log_pb", "maxCursor", "minCursor", "statusCode", "status_code", "status_msg", "total", "userList"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/global-footer/graphql", "keys": ["data", "extensions"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/compliance/settings/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&fromWeb=1&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["parental_guardian_entrance", "device_limit_register_expired", "idfa_popup_allow", "mixed_age_consent_action", "status_code", "minor_control_type", "is_minor", "screen_time_management", "policy_info_list", "teen_mode", "teen_mode_self", "parental_guardian_mode", "preference_settings", "extra", "log_pb", "ad_personality_settings", "policy_notice_enable", "notify_parents_with_email", "auto_replay_count", "age_gate_info", "interface_control_settings", "private_settings", "commercial_content_library_url", "screen_time_management_self", "about_privacy_policy_url", "cmpl_enc", "parental_guardian_name"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/inbox/notice_list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&group_list=%5B%7B%22count%22%3A1%2C%22is_mark_read%22%3A0%2C%22group%22%3A661%2C%22max_time%22%3A0%2C%22min_time%22%3A0%7D%5D&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["extra", "log_pb", "notice_lists", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/notice/multi/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&group_list=%5B%7B%22count%22%3A20%2C%22is_mark_read%22%3A0%2C%22group%22%3A500%2C%22max_time%22%3A0%2C%22min_time%22%3A0%7D%5D&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=jhXxTsWcFmk_mxeFu7FVJiU1QpT6j4Zp2Nn0qifCVaIby2I_sTTuDVNUkMQWFG9ordYXjeJlzMTZolItuDhSYwLRAz_GzTBIpIvZam_hKjpZ8EMK_CXdajfNMn02SK4cyJpN8W_Zp9bLaZgnqgww0GB92TEn-w==&X-Bogus=DFSzKIVOPOhANJZMCu50sqwyWdoI&X-Gnarly=MkVS3Rt45sThsfUARhwFSsScEPEbhaEyY8lQDIRXgHxMulieIobeHCOt4UU8xBcs9LV4zU58AeXja8hb8QWwf0ox8EcqZpuDf1fqF/obCZoshBwUNthc2ahdnvn0bkMnZM2MRLrHhlVd3PwgsWIni5S/VVo-ZcdGgEsq3ZaOzXLIEREhDIx6XVl/wwJVJyE-oOBc-pIIOt8J84KuZMFYxtSamGH7itr/jfnp6vhJrfTq0t42RwJHKsNz5KW0kU/aMq1jQc7rhvoGs3gOSeMp6d4o/68ACFwAn1zyENqDKtctq-Gi2UrLvuYduSiduVI5Qrb=", "keys": ["extra", "log_pb", "notice_lists", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/global-footer/graphql", "keys": ["data", "extensions"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/story/user_list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&count=10&cursor=0&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&isNonPersonalized=false&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&storyFeedScene=3&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["cursor", "extra", "hasMore", "log_pb", "statusCode", "status_code", "status_msg", "storyUsers", "totalCount"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/search/general/preview/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&keyword=hot%20trend&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=aBPLK2LYEfdc4C3rq28mcau3WPOUlT_SXUlfsT7-X3Fuljn4nrKTqx4mRPnO82snvtTRSvX40TthIVioA8z4-ilva3f8VM4YckMtIPirc37Cdpz6rWnjyxDiEilBWY3LRCU0L04jBB7Saqmy6I5lz1apR0GEPw==&X-Bogus=DFSzKIVO2gUANJZMCu50sqwyWdoc&X-Gnarly=M5hFdB7JZIHI7TjMuyROGMKbKM9p97a6WRAmntTPOPELIrr-PUbHI-I0e-T-xZ8nqCLAkBJ8y00bunhdJ4zsi67e8D4tPJrFhjHZ2KcX0aCIeHblounU8C9N7yv-PxUcJR8UZq2HCGgbevVW5dv-YyD9673ZGXZ1xh2nQaIbBkKZx2c0LWZM/b-EAGiVbU7SZGDwo-LfIIfN8d-q1vmjV5hZjBJ1Pd2uXSxZCRD6gTP74FpIFJ1OAMG6cyLgH/vtENvk6IlTgHTM4JuqyHvolL9sWxF0YG4HA6KbOD8UNb75iYGW69sGfCn8BtS9I8XL37G=", "keys": ["sug_list", "status_code", "status_msg", "rid", "words_query_record", "extra", "log_pb", "user_input_query"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/user/following/request/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&count=20&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&max_time=0&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_id=6884525631502042113&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=dmeaB_84ffdADJZ1dotu8YxbJQXM-QfYOpD2AP-HQGFIBhPt44pQCgpmqRTca-IeZl3YCn7x3zTQjd4XkIqtls2s_0WLkc3E7ldq0dBgfMAxGMn2NiGhEiVxVqYieOrqrrBPTZqO7y_NzaYvd1_qP4m-F9ehpw==&X-Bogus=DFSzKIVO1tXANJZMCu50sZwyWdLv&X-Gnarly=MFDZMlgU5RVn9iKTLH-bms-sAZ6QvXee9KS-q9fHHrBrtLY5MbpWR1B/1XcFqT9BDSgMiH4MAXU2buBdcGNiyvh5rgOcqRQJnQ58ulBrCsO85TC8P1Qox8ioNHF902vk8nr5aEjoxz5odXHpI-MDz1PUnCvnU1HPedxEE2BUnTVbWNvCDTUXHT4foZHlWAV8sTzWZcrUd2qymchRvGZLhe1EN05BWT4Oe107/xn8gh2cj67qfJFCVhzuwXyW9kJ7MU-zFAri6GCUs1JF1s2O4P5Jt1VmMzw8nq60BVpB/cEfdez52N7kV55HCm/saYHtd/b=", "keys": ["extra", "has_more", "log_pb", "min_time", "myself_user_id", "request_users", "status_code", "status_msg", "total"]}
|
||||||
|
{"url": "https://www.tiktok.com/tiktok/ppf/api/eligibility/v2?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["eligibility_list", "log_pb", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/search/suggest/guide/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&keyword=hot%20trend&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&req_source=related_search&screen_height=720&screen_width=1280&search_source=general&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["status_code", "status_msg", "log_id"]}
|
||||||
|
{"url": "https://www.tiktok.com/tiktok/ppf/api/eligibility/v2?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["eligibility_list", "log_pb", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/search/suggest/guide/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&keyword=hot%20trend&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&req_source=related_search&screen_height=720&screen_width=1280&search_source=general&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["status_code", "status_msg", "log_id"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/user/following/request/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&count=20&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&max_time=0&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_id=6884525631502042113&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=vaWJZAtGc67pGvsUDCpx9qF7PLJbDR0ShHfut6csNu8T8NO5NKNd0kl_BD9uIIr1pHQrZx4GnCFgG4kyRHcofCwNQ-MNzT5NPNZ0uoM2O0ozXK5hThFr8yt-kcP8xHAAUSR80QSajaSM0NucTrnsou9zhlM1ug==&X-Bogus=DFSzKIVO33UANJZMCu5Ml9nkBjaz&X-Gnarly=MHCx2gMU9Fr3JR5uJM0aFT8ZGEb71JoolaEem6ldXqM/8vInzcHp3esNiSrBkPhhNsMoE592mzhCbDkNIHpiMXHToKU99BKhyHFHkD9gkl8Qqf/9tytuHSDlvDGV62vXbvIwOnf3IUk7ELaI3e7hyURyb/Yv3wvxBeu4t33cp8eoG88cd3lbJcZEFTRnY9wUNzbNICYdo3CfTIbYrBZqhTkPjZBzHUPi1QiIj4EB2a-r-hJkk0JXfIC9khlNE4Y-ZxdkNmbDY1Zu4xdvJpyNYbrNqCr83XwP4-dm9ZGAFd6Wz6trKb1x7u74NXciY2K7BDf=", "keys": ["extra", "has_more", "log_pb", "min_time", "myself_user_id", "request_users", "status_code", "status_msg", "total"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/inbox/notice_count/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["extra", "log_pb", "notice_count", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/ba/business/suite/permission/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&permissionList=001004%2C001005&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=vaWJZAtGc67pGvsUDCpx9qF7PLJbDR0ShHfut6csNu8T8NO5NKNd0kl_BD9uIIr1pHQrZx4GnCFgG4kyRHcofCwNQ-MNzT5NPNZ0uoM2O0ozXK5hThFr8yt-kcP8xHAAUSR80QSajaSM0NucTrnsou9zhlM1ug==&X-Bogus=DFSzKIVOewsANJZMCu5Ml9nkBjGK&X-Gnarly=MH7K67YG6W4tCE9SFbzPOciq8hJPFljRK7FuDLEkgi33YKSITwUFPozbpmymZfS5XlDG7-9zvK2O6XWUmdQkpRYXw/UWpsBp81z3cBPnfOyeq/oYzK9kMxAvYUETBdVJh0oDDrHkbNOwlgfiahxKHaAi0/khjaX6cBN/Tffa9rIkk0szdqpEkl/6APqR8RAvxpimfX2zPy-/x81O7XXIvBkIpCt/FMi8eNxXf-r2wHGe7i8mlLOQFP8EKWnh3j7io6fbdsOi31mkJO4GQv84lGh7UzJgFTiYLf3uuXsezZDfnm/oPTQ6cdXRI-BRhUg81t/=", "keys": ["statusCode", "statusMsg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/feedback/v1/newest_reply/?WebIdLastTime=1758119023&aid=1284&app_key=tiktok-web&app_language=en&app_name=tiktok_web&appkey=tiktok-web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&clear_unread=false&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&iid=0&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["err_code", "message", "data", "pushResult"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/ba/business/suite/permission/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&permissionList=001004%2C001005&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=vaWJZAtGc67pGvsUDCpx9qF7PLJbDR0ShHfut6csNu8T8NO5NKNd0kl_BD9uIIr1pHQrZx4GnCFgG4kyRHcofCwNQ-MNzT5NPNZ0uoM2O0ozXK5hThFr8yt-kcP8xHAAUSR80QSajaSM0NucTrnsou9zhlM1ug==&X-Bogus=DFSzKIVOewsANJZMCu5Ml9nkBjGK&X-Gnarly=MaqXFiSY2-eenYr8AtVP6EF6exi0r/Vs9T0X-AChvofOrf-gsNQ3EabbE0en2bxZZItzxJlBrtJ7As-2aNY1-/hWWoePQm1QkiWZKfsGGUvyUmB70lmkP/hvPqQxi6MefWfAEEpxVCEQ4X062yMTy82/Ik/Yg3detcCwTKj7AKSDptRMFW3lDgVkZlRjbe0Z21MU6fUH2zkzXRNLLXRZBK8f7McV-W/jWI7Zcl1h47VB8M/MiP/m8354dDz5iAbTgkfTiUD2yAn0Ud5YwNNhAYlWskuRrRjltnxkDJAkKxwlgecZgntEKLOO4SO-f2EEYKI=", "keys": ["statusCode", "statusMsg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/ba/business/suite/permission/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&permissionList=001004%2C001005&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=vaWJZAtGc67pGvsUDCpx9qF7PLJbDR0ShHfut6csNu8T8NO5NKNd0kl_BD9uIIr1pHQrZx4GnCFgG4kyRHcofCwNQ-MNzT5NPNZ0uoM2O0ozXK5hThFr8yt-kcP8xHAAUSR80QSajaSM0NucTrnsou9zhlM1ug==&X-Bogus=DFSzKIVOewsANJZMCu5Ml9nkBjGK&X-Gnarly=Mxu1eeSvlPAd-YKmHR01FH8nZkfal6U9ozuU6Xx6scUfCecay2mzls-LXEthJPQVElGVj0U6ClpiZax4syXuJJY2jG3ZEnCdLLLRdw1ngnRRUFrP6QtvhP9SBIcatp9Wt1B-VX7wUSO20nfdlPg4X-ZwQn36tSQs5R3F1b/9OkTplXua/FRjxTH/E7SjzRNYG6kxdFNUZFLtLGqSoN/m1t-MBUSjBSi1auMjhihoGpSF5gNGN3DMVsAxZ2/91McA4JKU8tQZR8bTiUsb0Xqf6YipVxsF2q9tTZrdUxcVzlw3UNzcHaumvleyXsZzY5Z27dW=", "keys": ["statusCode", "statusMsg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/global-footer/graphql", "keys": ["data", "extensions"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/inbox/notice_list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&group_list=%5B%7B%22count%22%3A1%2C%22is_mark_read%22%3A0%2C%22group%22%3A661%2C%22max_time%22%3A0%2C%22min_time%22%3A0%7D%5D&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["extra", "log_pb", "notice_lists", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/compliance/settings/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&fromWeb=1&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["notify_parents_with_email", "log_pb", "is_minor", "teen_mode", "screen_time_management_self", "parental_guardian_name", "mixed_age_consent_action", "age_gate_info", "interface_control_settings", "idfa_popup_allow", "status_code", "minor_control_type", "parental_guardian_mode", "about_privacy_policy_url", "ad_personality_settings", "teen_mode_self", "commercial_content_library_url", "policy_info_list", "auto_replay_count", "private_settings", "preference_settings", "extra", "screen_time_management", "parental_guardian_entrance", "cmpl_enc", "policy_notice_enable", "device_limit_register_expired"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/inbox/notice_count/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["extra", "log_pb", "notice_count", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/v1/web-cookie-privacy/config?locale=en&appId=1988&theme=default&tea=1", "keys": ["statusCode", "body"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/global-footer/graphql", "keys": ["data", "extensions"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/user/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&clientABVersions=70508271%2C72437276%2C73720541%2C74087155%2C74444735%2C74534793%2C74757743%2C74782565%2C74879363%2C74926160%2C75004380%2C75004402%2C75014048%2C75030792%2C75132380%2C75150719%2C75163115%2C75183089%2C75204947%2C75207601%2C75224161%2C75227408%2C75236328%2C75248304%2C75252005%2C75257252%2C75266020%2C75269551%2C75289530%2C75308229%2C75312670%2C75328674%2C75331578%2C75331914%2C75334097%2C75341153%2C75350407%2C75352865%2C75352896%2C75358321%2C75373599%2C70138197%2C70156809%2C70405643%2C71057832%2C71200802%2C71381811%2C71516509%2C71803300%2C71962127%2C72360691%2C72408100%2C72854054%2C72892778%2C73004916%2C73171280%2C73208420%2C73952802%2C73952825%2C73989921%2C74008524%2C74276218%2C74413136%2C74844724%2C75330961&cookie_enabled=true&count=5&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&maxCursor=0&minCursor=0&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&scene=21&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=vaWJZAtGc67pGvsUDCpx9qF7PLJbDR0ShHfut6csNu8T8NO5NKNd0kl_BD9uIIr1pHQrZx4GnCFgG4kyRHcofCwNQ-MNzT5NPNZ0uoM2O0ozXK5hThFr8yt-kcP8xHAAUSR80QSajaSM0NucTrnsou9zhlM1ug==&X-Bogus=DFSzKIVOzDGANJZMCu5Ml9nkBjVz&X-Gnarly=M/d4ozVuoLfrIBP5TIrzJSmJjnBP9l1MCC2INteQ0khWbDE15IAnep9RnCchKOtqXL2IYAgFq3rBF2gxdl6rbFPLogXDPieIYVNsO2AruFnhVd2s84s1ddKvrbEPKdztJBmCWg8Q0BBdWY83qjqcj1cid5HwVtizc7jb50JXQ0iseenUkpDbq3gUmrRgVdwzrPGNP53Ugd1Br3IFLHZUgIXUtmz1uYvPRhyzzlvL053SGlJ02cpOMONWNSIW0NiJVSjdF9XHbHgHDNQqMCOh7iIqcB8QE3EhCF3p5U9/oIgNBJFgr4C4RKLWKgZPy8VqhVz=", "keys": ["extra", "hasMore", "isTruncated", "log_pb", "maxCursor", "minCursor", "statusCode", "status_code", "status_msg", "total", "userList"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/notice/multi/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&group_list=%5B%7B%22count%22%3A20%2C%22is_mark_read%22%3A0%2C%22group%22%3A500%2C%22max_time%22%3A0%2C%22min_time%22%3A0%7D%5D&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=vaWJZAtGc67pGvsUDCpx9qF7PLJbDR0ShHfut6csNu8T8NO5NKNd0kl_BD9uIIr1pHQrZx4GnCFgG4kyRHcofCwNQ-MNzT5NPNZ0uoM2O0ozXK5hThFr8yt-kcP8xHAAUSR80QSajaSM0NucTrnsou9zhlM1ug==&X-Bogus=DFSzKIVOh/kANJZMCu5Ml9nkBjGN&X-Gnarly=M5GerUrCO6btinWouA1m9xsO3josxAXx2nVROSSPovtT2AxYSk/59UFAAcn41/8X3Dq0YK2RuQN-ShBOZVvpwXsPGICJyZCDNP78G9QFhbcsomnji/n3FV8chiOfpu4DaYLs0qsZhlC3fQUd-ziUhtP4sBLXzVYlmQ9vvESw1ebJNnWGuCeaAzzUks-1jgLWdi3FULca5BckEyD8wRTBnaK/nH9ImghCsdKpZei/O3sv3UA-LCtnrC1As-PkwzQAglQgPWJK-dMoL0Izob5jv9PpryyZXoX3CR3gheOuZ6TvRgY56vg8kbZDCjz8S3xn81v=", "keys": ["extra", "log_pb", "notice_lists", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/story/user_list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&count=10&cursor=0&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&isNonPersonalized=false&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&storyFeedScene=3&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["cursor", "extra", "hasMore", "log_pb", "statusCode", "status_code", "status_msg", "storyUsers", "totalCount"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/search/general/preview/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&keyword=hot%20trend&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=5JD8tqZyfDNGXubGRB1VGZzXa8df81ypXggNzLi1RfpU2odhW8MdnUEdmA7Rp9g1Adj0mnSl18K2E_qa1pMeToeQe95-GiAiDCIJTLjPgkf2Qzz8mFdikbu0nZNFT-woBj51BS3FohBSXN-wud1Eb1v0khWbyQ==&X-Bogus=DFSzKIVOLDiANJZMCu5Ml9nkBjVM&X-Gnarly=MalcefO355XPrxbD9QNT0hzk474hSskYEX9oyp5w3t4xMdeFrk-fZq4xq/iG4coW1eduSBe5m33qQFyaAsoEfgn5UdEWknjgF4cfYFcPHDFwtJsJWJRO20qxYqb371OU1k6czDsZnv30VRtdCLppaGEIefVxB98LNVMiRU/XY7GOG5GVeUhMSZQaS7c/dPJA-kBTy0P4gBuM6JEtFhtHsUmXOoAngrlUNNCnR0-Epv2hpauH/oeUCkrP-CKUzndk6sco1ujXr6Llkb7B6lEID59abV5FUcNNdB45CI-jVn4QnDojzUGxs57NbuhugskvOak=", "keys": ["sug_list", "status_code", "status_msg", "rid", "words_query_record", "extra", "log_pb", "user_input_query"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/user/following/request/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&count=20&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&max_time=0&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_id=6884525631502042113&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=DmAyOtgr5D7k7whr0FN5S3c907c70fkEYkS4N6nDHjRh8aoRFvlFGascrXHBVwaqPUNmKve1y2Q5teOXMCRsHy2aVZQwVPM7wV7fYtNkQR6Ny_RmKvLO_ecHnPR9yoPS1dVHJPyQEBq3aMky1DrcrS_BD22WRw==&X-Bogus=DFSzKIVOk7UANJZMCu5MlInkBjcy&X-Gnarly=M5RsW3OndpQX07PY/pLRXNBxM-bKXoTXx2nOKDFKAPp1CMM5CXyiF3rghdHY5R2oiY9Gqo9xOEHdJXmocatropNDh9/1aV2LH90z/TAuUze-D4ufVBLty2Zx4O0qUdmCGotD8y4XfPpXln9dfSMdhrKeGCvXx39LacedrWgGiCDVLgTY7XDM2VIMbBMTXfixz1L212/cY31t5/K1Hc2Fpq3pIv7tse-MpHPR6mFNil2CNIuNO76KPyuvXv2jhiS/AQGAs/1fMkTfAeEdFVg22E3zO2YPRX8DxMV3h5omYMqWzqpMtA76aWsUVO3HXQlvJEu=", "keys": ["extra", "has_more", "log_pb", "min_time", "myself_user_id", "request_users", "status_code", "status_msg", "total"]}
|
||||||
|
{"url": "https://www.tiktok.com/tiktok/ppf/api/eligibility/v2?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["eligibility_list", "log_pb", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/search/suggest/guide/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&keyword=hot%20trend&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&req_source=related_search&screen_height=720&screen_width=1280&search_source=general&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["status_code", "status_msg", "log_id"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/user/following/request/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&count=20&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&max_time=0&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_id=6884525631502042113&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=iP7BLLSTRYoau48HZeadiD-b4R29lMTKybJeoQbTa2Zl4Mtv1xCDOMuY3nCFQ9RHHLUzb9YGE84yL33maaqbhZE0c6-Oe4f7vV33oVov-msfr9pqQ8lYdNcp-U2kQnkhZn4PQ-Bb4t4R8PnoqRPyD4G9&X-Bogus=DFSzKwVOYTxANaXRCu5Mr9nkBjGP&X-Gnarly=MFsDfVjUHxdxHoMrwJ-5o5RB4Jno1QI00OXv9Ygf3gs6oKJVnks/pAxQOjC4lhZg7xwcOjuexn2cq0MUoWJ8IEFa8DbAQWCultiNJHl0zTlIOuQu8ZFrY/nE/WJ4MlZD4BXtJLPhar1wrwd0MKxvWZbpM4y14DZUOwbJWqMc1ls/1XuO/0hsmdVTRYSdcVwJOtICmEQ/dXU4qZB1cbUAn3XtlaX2B702mzCmpdsuor7-6MivXQRxRF1tn75gtQ22ZpuVQuhIjUCJRIAvuckb4et/6qspJRmy5n6WM3by7uyW2VWi3/oY54fvEQ5fDisqeT/=", "keys": ["extra", "has_more", "log_pb", "min_time", "myself_user_id", "request_users", "status_code", "status_msg", "total"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/inbox/notice_count/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["extra", "log_pb", "notice_count", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/inbox/notice_list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&group_list=%5B%7B%22count%22%3A1%2C%22is_mark_read%22%3A0%2C%22group%22%3A661%2C%22max_time%22%3A0%2C%22min_time%22%3A0%7D%5D&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["extra", "log_pb", "notice_lists", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/v1/web-cookie-privacy/config?locale=en&appId=1988&theme=default&tea=1", "keys": ["statusCode", "body"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/feedback/v1/newest_reply/?WebIdLastTime=1758119023&aid=1284&app_key=tiktok-web&app_language=en&app_name=tiktok_web&appkey=tiktok-web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&clear_unread=false&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&iid=0&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["err_code", "message", "data", "pushResult"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/ba/business/suite/permission/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&permissionList=001004%2C001005&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=iP7BLLSTRYoau48HZeadiD-b4R29lMTKybJeoQbTa2Zl4Mtv1xCDOMuY3nCFQ9RHHLUzb9YGE84yL33maaqbhZE0c6-Oe4f7vV33oVov-msfr9pqQ8lYdNcp-U2kQnkhZn4PQ-Bb4t4R8PnoqRPyD4G9&X-Bogus=DFSzKwVOZM2ANaXRCu5Mr9nkBjcC&X-Gnarly=Mkv8BmL98Z32nbU/HynqyGcrdjj1RAIHdkYhEcCdr5o4IwKGQa9GPvKVBecHzGWaz46Fp68RsJh-aGkJC0AUNtfUSuK2DbsRoyR64xwUH5NxtBvZm0afyf7A8UaN8gZiAUSVRh7dwhMv3k9hWFwHbn12Jw5d0ee77c1EqwfLIaNj4jtWCDtHYpKbRkxnck8ebYblrKwPmqRHl4Pv4XeChF/l-GQupKuxokQbynBgxJsj2kGvL/v76V1a5ZtkSB/1dgJipW7itYovBepiC5q4HrjR1vJaUmJxT96Stc0iAhazufj1lFP6NHWAj9UmHfLSdvw=", "keys": ["statusCode", "statusMsg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/ba/business/suite/permission/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&permissionList=001004%2C001005&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=iP7BLLSTRYoau48HZeadiD-b4R29lMTKybJeoQbTa2Zl4Mtv1xCDOMuY3nCFQ9RHHLUzb9YGE84yL33maaqbhZE0c6-Oe4f7vV33oVov-msfr9pqQ8lYdNcp-U2kQnkhZn4PQ-Bb4t4R8PnoqRPyD4G9&X-Bogus=DFSzKwVOZM2ANaXRCu5Mr9nkBjcC&X-Gnarly=McGhajgV3WSIulv8C5hlPwDT5qQkO1Mt4VrFXU5ndh0/gEEAtQtz64uloZbqZ/m2GfA/Tp6FznPVMP2fO1u5SXLPbRuLh2xR/T/M1-0d8hOnvHtkWfw9jtujcafc/HdZR/n/E0MDNPWk1qucG/TbBMVw20TOX4HIbxWYJsOqQV7gQpRk0/b4Th0onZSTaFFrTHewx6-8zW3LdVqCeOHoJnA3sHgRTLC68qj7C8Eg1M63f-r2yq6XaPL4nQtQ851cmGGJEzrHX0Kr9LUmieCF92r5CO39tda0Dbb23i-tPXUMC/cIDDmuHBrRZP9/YOKXyM/=", "keys": ["statusCode", "statusMsg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/compliance/settings/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&fromWeb=1&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["idfa_popup_allow", "preference_settings", "log_pb", "parental_guardian_entrance", "parental_guardian_name", "about_privacy_policy_url", "age_gate_info", "policy_info_list", "notify_parents_with_email", "status_code", "teen_mode", "screen_time_management_self", "parental_guardian_mode", "cmpl_enc", "policy_notice_enable", "private_settings", "commercial_content_library_url", "minor_control_type", "screen_time_management", "ad_personality_settings", "device_limit_register_expired", "interface_control_settings", "mixed_age_consent_action", "auto_replay_count", "extra", "is_minor", "teen_mode_self"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/inbox/notice_count/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["extra", "log_pb", "notice_count", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/ba/business/suite/permission/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&permissionList=001004%2C001005&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=iP7BLLSTRYoau48HZeadiD-b4R29lMTKybJeoQbTa2Zl4Mtv1xCDOMuY3nCFQ9RHHLUzb9YGE84yL33maaqbhZE0c6-Oe4f7vV33oVov-msfr9pqQ8lYdNcp-U2kQnkhZn4PQ-Bb4t4R8PnoqRPyD4G9&X-Bogus=DFSzKwVOZM2ANaXRCu5Mr9nkBjcC&X-Gnarly=M8anZahwwTPOpaXDM78S7uBUhudNHLCTGavQzp-UNYz5oALomzgcCBlJjwsStHfrtJ/kWhkoYYbtrCv76XAOfYVPDu1WRwFDetSy-teM6AzjpHw8ey95s88d/j2zH6ksKBzmOIdXxnC3qmz2/AaNCjX-RMF0bOja0EvKl8fnqe/-EoM7RCE-tBtl5NJD5m8WFbY0Zu3-ruU63J7OH8H1FD/omM9TbGm2j18wHf8R6Npz6MT20w9V1YWW/tr3YppBVDOLjhKyS4iX53Lui1WSF0ut9guwPkmvNgYrQ3jNE5lpeEd7KcomON8QZ9HHm9HGY0k=", "keys": ["statusCode", "statusMsg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/global-footer/graphql", "keys": ["data", "extensions"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/user/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&clientABVersions=70508271%2C72437276%2C73720541%2C74087155%2C74444735%2C74534793%2C74757743%2C74782565%2C74879363%2C74926160%2C75004380%2C75004402%2C75014048%2C75030792%2C75132380%2C75150719%2C75163115%2C75183089%2C75204947%2C75207601%2C75224161%2C75227408%2C75236328%2C75248304%2C75252005%2C75257252%2C75266020%2C75269551%2C75289530%2C75308229%2C75312670%2C75328674%2C75331578%2C75331914%2C75334097%2C75341153%2C75350407%2C75352865%2C75352896%2C75358321%2C75373599%2C70138197%2C70156809%2C70405643%2C71057832%2C71200802%2C71381811%2C71516509%2C71803300%2C71962127%2C72360691%2C72408100%2C72854054%2C72892778%2C73004916%2C73171280%2C73208420%2C73952802%2C73952825%2C73989921%2C74008524%2C74276218%2C74413136%2C74844724%2C75330961&cookie_enabled=true&count=5&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&maxCursor=0&minCursor=0&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&scene=21&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=iP7BLLSTRYoau48HZeadiD-b4R29lMTKybJeoQbTa2Zl4Mtv1xCDOMuY3nCFQ9RHHLUzb9YGE84yL33maaqbhZE0c6-Oe4f7vV33oVov-msfr9pqQ8lYdNcp-U2kQnkhZn4PQ-Bb4t4R8PnoqRPyD4G9&X-Bogus=DFSzKwVOwzhANaXRCu5Mr9nkBjaM&X-Gnarly=Mx6SIY4cZqmkgoiZ/RJd/0RORjrCRV8IutBy8P-SxfEgXpWOHlyd9rPtkK9WCbOT2WuobZ4G6wL1p8U3iNtJ7r/GzIqlCdCatn4nzLMEaMopCaOmM7fEH/HEZr1El8yc6QxvXUf4BM6LQ0HI6ELwkIzjSkaD-2LK4y0DILsRc9McEj/vGzOB7oO-qvf6nzeiRMTxGTrebboesi3AqImJufBtlk-ZY/PWzvxjhMLLTyt3n30Lyi17Kz8mw/pFvZD/pFEnfdyg-av5-Ntj/D8jp6kRZE-C9WnRVUoPu7K9oVRh8qveTOyASKQ-K2TBO5cGnmn=", "keys": ["extra", "hasMore", "isTruncated", "log_pb", "maxCursor", "minCursor", "statusCode", "status_code", "status_msg", "total", "userList"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/notice/multi/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&group_list=%5B%7B%22count%22%3A20%2C%22is_mark_read%22%3A0%2C%22group%22%3A500%2C%22max_time%22%3A0%2C%22min_time%22%3A0%7D%5D&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=iP7BLLSTRYoau48HZeadiD-b4R29lMTKybJeoQbTa2Zl4Mtv1xCDOMuY3nCFQ9RHHLUzb9YGE84yL33maaqbhZE0c6-Oe4f7vV33oVov-msfr9pqQ8lYdNcp-U2kQnkhZn4PQ-Bb4t4R8PnoqRPyD4G9&X-Bogus=DFSzKwVOITiANaXRCu5Mr9nkBjcI&X-Gnarly=MxiGb-7TE7stSx584UszDQxskwC2dHF-6d87HZbKPa1s9i0oJ/1ydWeLLa-bekQIlqMdgl9f7IPv1Ncx0YZZ27vZr9NODdOD2KU38pda4g5dlu2OLhrfkt1rO7UQWOwftmy2H6FYARYPmP6gPt69VEvGS-GwspYDjdowk67qDbTUPIDWfa62kDmVPhSTHcFrS2uZ/LY5wT-iIVGI6e/A2p4e9MOeaoGfkafShYsI09/u22GvFKJF8YLpc2EJc7q3h3NT3duLdRM1V-UhN0e2Mm8tuNKhkU-OPBfF/RtRkvtK9zt9koyspJiy6CYA7qN0Wku=", "keys": ["extra", "log_pb", "notice_lists", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/global-footer/graphql", "keys": ["data", "extensions"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/story/user_list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&count=10&cursor=0&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&isNonPersonalized=false&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&storyFeedScene=3&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["cursor", "extra", "hasMore", "log_pb", "statusCode", "status_code", "status_msg", "storyUsers", "totalCount"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/search/general/preview/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&keyword=hot%20trend&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=ukhcFRTjr8qLVY8zkblQk1J7HDs7LeQhNnjnEekI5dj6ZBD23o_SWDdlLZkCsa8MOw1uos6nf3VxBjNJlkFWgQ6hb1XrdM2WoGwauZR37I0SNuW3855v16TbKIHn9_avhwW4kOBNgKMZC3exgb85K_Rw&X-Bogus=DFSzKwVOYitANaXRCu5MronkBjaY&X-Gnarly=MwJmlsNN7KrdDoSfzAhSHtIXQ9bY/2cUg9QK7WGLdgjsXC-N4JLniza8pq1f47023/fQNqF4qd6-ZWar1fhg6Zlwxjf7do6NKjF4vS0TOPxCLmF4XFHEgXR5Bz2lhOP44lWkbNuaiXjAbyzKnSXvwWJK4GrVM9CYxlFbcpr9O/W/00POE/YI3974Hx7nFps07mTa0vCoNQNkCdOZXGIzTEypqV/091B4Nges3k8zVXNP5JICIhh9xlBJFx/phF9lTA/ifaUvmrUAyncvkbDEN/0xTrHpCfdLRQ4xCcaQwAU4TxC4imPDWlu8FMj7jHuPKOn=", "keys": ["sug_list", "status_code", "status_msg", "rid", "words_query_record", "extra", "log_pb", "user_input_query"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/user/following/request/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&count=20&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&max_time=0&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_id=6884525631502042113&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=q9D_OQ61XHsUaUWBsR2d0cJRwXOMIPgfAWuuQt1tiyLICdA389BSr2tJfgIJ7X2P9nKwVwAw_IDzFWHXdl9CmTv1E9FgdzElWNDZnymAjVYkye_J7lipSGmEd0kdjNlTdQfRnype0S16pcpueBZXGYdZ&X-Bogus=DFSzKwVOdgGANaXRCu5MrInkBjVf&X-Gnarly=MH89qkAZV4ywyTzMhze6CYike8h3V5sjpnsVysVy0-q3x7YyyutWGN8UQOUXfYS96zQsaMTcXmeZzXh86OeekE/gqyBwhg7BXr55OBylNzNqdTaWt4Rz048n5pZukO59bSzn6E-OUBkQZ41QczQpTzUVoL5tY1B69wwk9ReL30bLw3wO6wZuBpe3EFg8jjcUSv4vSly7ae4Ge4h7gN7qZxbYJf6qGocxWLFyBDKJTR3B50DEpOWCFawnUM7CXjhn-duL6h-RW9HAoeCNeXAz413zeMa7pw1hhNM5w3cKlVBQT2wRPU2TqfFe/1zyJLsMUHR=", "keys": ["extra", "has_more", "log_pb", "min_time", "myself_user_id", "request_users", "status_code", "status_msg", "total"]}
|
||||||
|
{"url": "https://www.tiktok.com/tiktok/ppf/api/eligibility/v2?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["eligibility_list", "log_pb", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/search/suggest/guide/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&keyword=hot%20trend&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&req_source=related_search&screen_height=720&screen_width=1280&search_source=general&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["status_code", "status_msg", "log_id"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/v1/web-cookie-privacy/config?locale=en&appId=1988&theme=default&tea=1", "keys": ["statusCode", "body"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/user/following/request/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&count=20&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&max_time=0&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_id=6884525631502042113&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=SpikihT0HCuxZMBNgO5iXRyyEm-IqCmpYkW3CsJ1ghaXlVnMjQNFMEZLnZknJjXBBV3k70oKAVvg6-0L3oaqBzWo8OyrYqohvOWozKkf1QLTcmAvbhJM1KI-3qaWjZNhp6t-vhAJrANeS_3ulT35PcoX&X-Bogus=DFSzKwVOzBJANaXRCu5KB4nkBjcV&X-Gnarly=MFEvVAJeop9aDjWNy-rR9z4tRq/iVX-pAHVZ6a1LCfZGsLNQ9WLhjftm4yTm29Q1u4ho14TslIEPlmg73iMBfHVqAIXczR9NFMrR3ZOgKn8ovnG40YM1/as/8x5E1wV81SzHzEOot6H62RnPfGqpVmLSS410rVtEVrIorsVw5iJpGGQQgGqcvCkDaI9PjAI2/qaB96oGqjcvdKwGATSznfCeRdVRwaVnJ6ltZxSX5rr0jq9t5DrfhJsMko3NbD4JpBlWoH4r3w0DlYvc51IJZxKLmgzYoRbsBN0NrAUzlqyfdm5n9noRBIYp1uqybo8ZB5R=", "keys": ["extra", "has_more", "log_pb", "min_time", "myself_user_id", "request_users", "status_code", "status_msg", "total"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/compliance/settings/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&fromWeb=1&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["teen_mode", "screen_time_management_self", "cmpl_enc", "notify_parents_with_email", "extra", "status_code", "device_limit_register_expired", "commercial_content_library_url", "mixed_age_consent_action", "log_pb", "policy_notice_enable", "teen_mode_self", "about_privacy_policy_url", "age_gate_info", "idfa_popup_allow", "preference_settings", "policy_info_list", "auto_replay_count", "is_minor", "screen_time_management", "parental_guardian_mode", "parental_guardian_entrance", "ad_personality_settings", "parental_guardian_name", "interface_control_settings", "private_settings", "minor_control_type"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/inbox/notice_count/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["extra", "log_pb", "notice_count", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/feedback/v1/newest_reply/?WebIdLastTime=1758119023&aid=1284&app_key=tiktok-web&app_language=en&app_name=tiktok_web&appkey=tiktok-web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&clear_unread=false&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&iid=0&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["err_code", "message", "data", "pushResult"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/ba/business/suite/permission/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&permissionList=001004%2C001005&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=SpikihT0HCuxZMBNgO5iXRyyEm-IqCmpYkW3CsJ1ghaXlVnMjQNFMEZLnZknJjXBBV3k70oKAVvg6-0L3oaqBzWo8OyrYqohvOWozKkf1QLTcmAvbhJM1KI-3qaWjZNhp6t-vhAJrANeS_3ulT35PcoX&X-Bogus=DFSzKwVOsmTANaXRCu5KQ9nkBjGa&X-Gnarly=Mwu0V3NjeUNojle4UpS7d4wjtBDAImWih8IZFp1Nds3hmtVLoROO2sFHt9BTf6m/Sqr1N4884YGrl9FZlQ9iRTr9QWbCVGJeJi3Cz4xl39srkcu-gMeuKD7mYNRCBQWAiR/V8wuZoqTigL9KHlLiqPfMyYId6ZoQQuDCb4RVPAd-0h/w2OPs30y6SkvBYpCvajCl7-iCmuRi-vsWH3dHvfnUTMyqOXEGrhnOL0Qua-Pg5gSpTawW10TIIJ32CdJ/XlIpJxB9H9zO0bULtDx57Y4I614NBSychOOQMEaHT7S2ChYqV1g0d8rgcMca6xo4WUw=", "keys": ["statusCode", "statusMsg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/ba/business/suite/permission/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&permissionList=001004%2C001005&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=SpikihT0HCuxZMBNgO5iXRyyEm-IqCmpYkW3CsJ1ghaXlVnMjQNFMEZLnZknJjXBBV3k70oKAVvg6-0L3oaqBzWo8OyrYqohvOWozKkf1QLTcmAvbhJM1KI-3qaWjZNhp6t-vhAJrANeS_3ulT35PcoX&X-Bogus=DFSzKwVOsmTANaXRCu5KQ9nkBjGa&X-Gnarly=MkVOZHRaZaisuW814jngsOqZEuHYEglnCmuBd7Vldq/gOxSP3-SXgsWpRylC5884iswSIyLGiCAHXD0ddUHLv0QNNDjVNn/k31UxK1cVMbnTm/JoX7kdu267vbb9qEO8WI7L6IUctYha/BStqYa-qF2aRq3t8v58MrRWS2UEB3/djf1EgqyJxbImIQePHu/ooLS4Lq29M-ZkOBE8d2K9cPMe2KqET4TKKqQNRz5VCLjr/IfZtkGCSVPX0iBjDrIMG3dgRAEo/tJ3ClnJh0LNk/31Ty9nZ/XqPyrlnB8mpvxOQctn6/udJf/mCr0OqAx7DrR=", "keys": ["statusCode", "statusMsg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/ba/business/suite/permission/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&permissionList=001004%2C001005&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=SpikihT0HCuxZMBNgO5iXRyyEm-IqCmpYkW3CsJ1ghaXlVnMjQNFMEZLnZknJjXBBV3k70oKAVvg6-0L3oaqBzWo8OyrYqohvOWozKkf1QLTcmAvbhJM1KI-3qaWjZNhp6t-vhAJrANeS_3ulT35PcoX&X-Bogus=DFSzKwVOsmTANaXRCu5KQ9nkBjGa&X-Gnarly=MJoFiWD7YqX/eQrZs/2uAfpwCev5g7S3T0DgDmgOSN05-SrWkH8HWw7fPIsvcjS-XBdfIi5gk0v6bStyii6XdQANpjxVqoQ5eUvyb9D0PqdliGaxq03ZGV4mvk9I6eGAO3T0i48aUUqnQKxYcuHDWoj5mrqQSSaIfrPK24fwBUiUpU--5mJi-Vx1UEwN5w5AWa7H4oA3Mk-kqoYO-7s0t9UI72bDn3wBxB4JHJacHxcVLCHIdNIXuRfIXBov9u3YnXFXtCTVlunFgozqhjjfKGj8yzZsg0YxkoAybdzGpRRQyM92eTdrE8BtuDgvHjaEr1Z=", "keys": ["statusCode", "statusMsg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/user/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&clientABVersions=70508271%2C72437276%2C73720541%2C74087155%2C74444735%2C74534793%2C74757743%2C74782565%2C74879363%2C74926160%2C75004380%2C75004402%2C75014048%2C75030792%2C75132380%2C75150719%2C75163115%2C75183089%2C75204947%2C75207601%2C75224161%2C75227408%2C75236328%2C75248304%2C75252005%2C75257252%2C75266020%2C75269551%2C75289530%2C75308229%2C75312670%2C75328674%2C75331578%2C75331914%2C75334097%2C75341153%2C75350407%2C75352865%2C75352896%2C75358321%2C75373599%2C70138197%2C70156809%2C70405643%2C71057832%2C71200802%2C71381811%2C71516509%2C71803300%2C71962127%2C72360691%2C72408100%2C72854054%2C72892778%2C73004916%2C73171280%2C73208420%2C73952802%2C73952825%2C73989921%2C74008524%2C74276218%2C74413136%2C74844724%2C75330961&cookie_enabled=true&count=5&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&maxCursor=0&minCursor=0&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&scene=21&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=SpikihT0HCuxZMBNgO5iXRyyEm-IqCmpYkW3CsJ1ghaXlVnMjQNFMEZLnZknJjXBBV3k70oKAVvg6-0L3oaqBzWo8OyrYqohvOWozKkf1QLTcmAvbhJM1KI-3qaWjZNhp6t-vhAJrANeS_3ulT35PcoX&X-Bogus=DFSzKwVOqjkANaXRCu5KQ9nkBjVY&X-Gnarly=MxQYbKbnUX8CQAnK0KuZeUppwu3BZ2L9yuMWhErSBdY6T0qYj9O0-i4SeOQslLoBptSkHUzmnirGrQyRjrCBXJdFowJOzEtXH9QFrgJP3LwQgHK-1WTdiBoyNy-ARwToPIBiDC/GrhWvUe9K5ns7V-GBs01R08yZIhwPzNhmxr2e6naIjLhKs9RSxJGGR0K8PxRrouf0jBMnW/9bpfFtCyG5VCV-sqtGCd6jaDp/b4xC2sn5/Bwdy9moQ3KoR/mQgdogsJI3tTFeT7gFAxnBZpDArKuzbtpfYYXO1oGNEw2t1CRtFXQDmRjtLQD5OG4h4kz=", "keys": ["extra", "hasMore", "isTruncated", "log_pb", "maxCursor", "minCursor", "statusCode", "status_code", "status_msg", "total", "userList"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/global-footer/graphql", "keys": ["data", "extensions"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/inbox/notice_count/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["extra", "log_pb", "notice_count", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/inbox/notice_list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&group_list=%5B%7B%22count%22%3A1%2C%22is_mark_read%22%3A0%2C%22group%22%3A661%2C%22max_time%22%3A0%2C%22min_time%22%3A0%7D%5D&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["extra", "log_pb", "notice_lists", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/notice/multi/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&group_list=%5B%7B%22count%22%3A20%2C%22is_mark_read%22%3A0%2C%22group%22%3A500%2C%22max_time%22%3A0%2C%22min_time%22%3A0%7D%5D&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=SpikihT0HCuxZMBNgO5iXRyyEm-IqCmpYkW3CsJ1ghaXlVnMjQNFMEZLnZknJjXBBV3k70oKAVvg6-0L3oaqBzWo8OyrYqohvOWozKkf1QLTcmAvbhJM1KI-3qaWjZNhp6t-vhAJrANeS_3ulT35PcoX&X-Bogus=DFSzKwVOUHiANaXRCu5KB4nkBjce&X-Gnarly=MOCbc0zbv-PVN/e2/reDDDPl-j3FFllFboDlvffSULjUWw5FNilJW7xHaVsFzI826NOtwZVEpashE25M/do/GpWQakKSFPAxyBCR6HhhXvh2iCyj39tbbuQquj6u75DkYJK6HoqHihGQxICFlMcQ0XY-O7vlkvie3473QJ7LVc1H91FilKO6LNcyU192hOVzxdC1w-Zlu3nG-mBui7AD3WucSxI2URaUOqT36/ynTS7Jb5wTjkaXAM69LKPkenDbYswkCvSzAFcsTtuaKrJBcgRcqWfujjKucoQzueprqAKwXuTuso67t12QZPt9/a2xViW=", "keys": ["extra", "log_pb", "notice_lists", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/global-footer/graphql", "keys": ["data", "extensions"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/story/user_list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&count=10&cursor=0&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&isNonPersonalized=false&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&storyFeedScene=3&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["cursor", "extra", "hasMore", "log_pb", "statusCode", "status_code", "status_msg", "storyUsers", "totalCount"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/search/general/preview/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&keyword=hot%20trend&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=jEFh4qXUd7dfiAy6lh9Jszfu2u0Xyk9WKt-SGce2cSE-WT8A-9ImwrsIvNA0VGyZngpjYdcrrfcBPJWBdxN8YciCOf8fuZeKV5Q9VL-IFbK9OCUqMpHb1kfDVd2qYkaeae5YcmPse4-syTNtH8L3zmDZ&X-Bogus=DFSzKwVOLbGANaXRCu5KQ9nkBjGa&X-Gnarly=Mc8rlOX-9jbzlQgoZWN61ffuMdrOSayNo6OX/kmNiEK0E6mOV46W-g06VyVc8MMhoFV6ZK71nXx1G0V7vy3yDmkuUHQuXE//4NGXJymAZnppjfFh/7EfeiyQv3/2ZgaxGsWPvxzGdLeuJPzhpnBskiEcYKUWOmeLKeFGYPjD25Mlw9HVtLtRoaHmTGGeHL5pNL4aiO4yYFX4ZF3ry7xhJW60fhGGLcKs2lujBlzV62YWWIlzcYRDtBytqXtYP7z60mdaXyrMyK8YA1GCEsgSEk8iD/epXqh8LC/MxiLp8OGh08ljTAFVJYA5EdkSXE7NJez=", "keys": ["sug_list", "status_code", "status_msg", "rid", "words_query_record", "extra", "log_pb", "user_input_query"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/user/following/request/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&count=20&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&max_time=0&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_id=6884525631502042113&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=i4IQuFvY5gcWjjGvdLYh1dLG20vJLOT8_LcOr8S4Gl4OmNHyDlR1w5uowTETN1P0A88nAxCsReSVMJ6emLH-htk0jc9Or5dxrZk4YElVrX5sWPGgl5BMOfLVvJl_j_68Br2O4pfiq6ePRZg3haaYng-g&X-Bogus=DFSzKwVOs20ANaXRCu5KQInkBjVp&X-Gnarly=M8GXCtVLNaC8xlsYjpPLz63cWx5dvxia-qfyE1X-spYaHtyA20LOxW6bXlhUpAl-11JsRtarUNM2eBdCwIjFJPHXi0MkN65Dq5VnAtCcbPb7cKUwKdYUFleq4LhMbo74JnVlN94kylPAZ5isEObXjxP2WQ7rTcMJjDOGWO1GfqW-6e95TFdgJARwz4Mk/Yne4j2j53CI3q4/vRz6wU8Q-J8vG/FfCvSXxQnO/VOrlcJDNyozIMJMRW4tK4VOe1ILy9yAEnI8F8TXFO63PPbHUryfS1-DsNXXIDfX2w-pXtRtokiPfzYx4QuY0X0wUH8905z=", "keys": ["extra", "has_more", "log_pb", "min_time", "myself_user_id", "request_users", "status_code", "status_msg", "total"]}
|
||||||
|
{"url": "https://www.tiktok.com/tiktok/ppf/api/eligibility/v2?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["eligibility_list", "log_pb", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/search/suggest/guide/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&keyword=hot%20trend&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&req_source=related_search&screen_height=720&screen_width=1280&search_source=general&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["status_code", "status_msg", "log_id"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/user/following/request/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&count=20&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&max_time=0&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_id=6884525631502042113&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=oJZslKhk9Ki_kIndTqwzmjTib9yL5kJoC8EO43aWMo1pJ15mu8O-C25wyAzA120SgFpKoRNlStkrMHK2diPtIUvCTlOnQcplKeuutqJHyWzhTWJtcR3g5-jv4E-k0kd380c_ECueZ3ql3rtoph04nL1P&X-Bogus=DFSzKwVOnAbANaXRCu5sjInkBjGS&X-Gnarly=M8Bp/QkCXqRVcUgwibf-Fi9BnbvU9RcncGIGJtAkAajmN9XMk1B3BZOxOcSqOHTXHqjynXbH4Dyxzi9WmOeECAg1TFTGCg0TZ2fqvzOMiDZIe46Uewl6sP9BQv6UDXtGuznkTWZroKFgH6WFKGApVxVuPF9GKwJKTawR9Ko0Xed/8U/ZGURlU-llUF12NM1zZ1hGxe3vHD2sVwxQjjfT5nr7rvtavGEz02avi3z8wytCj3PkwCKfHOgtp5CvWxnFq8Sq/O3fG1bW3vzn-2Sw1dUC9HmhhW0zJhHzZLiSqVQKfPHVT916wq6VB904-TYAbev=", "keys": ["extra", "has_more", "log_pb", "min_time", "myself_user_id", "request_users", "status_code", "status_msg", "total"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/v1/web-cookie-privacy/config?locale=en&appId=1988&theme=default&tea=1", "keys": ["statusCode", "body"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/ba/business/suite/permission/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&permissionList=001004%2C001005&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=oJZslKhk9Ki_kIndTqwzmjTib9yL5kJoC8EO43aWMo1pJ15mu8O-C25wyAzA120SgFpKoRNlStkrMHK2diPtIUvCTlOnQcplKeuutqJHyWzhTWJtcR3g5-jv4E-k0kd380c_ECueZ3ql3rtoph04nL1P&X-Bogus=DFSzKwVOXgGANaXRCu5sjInkBjG4&X-Gnarly=Mx42uNfE3ZktvzdIP-z51Ery49tCh1bWb2JPcwwOQhowVvwwosNxWhBj9YxSVrV0yXg8UzxvUdghwmUkleHrXkAQpmHWb-w0L5uBo65OlirNH4JaQVEDYe371q0uUWG/DkEl0rh0XbR1HBUXsZOTJFRA7wfuX1KwvDgVgdMknRVjSzmUOsSj/0jAqHFpfogA6S2dtD/O4p0jkXrhj-O3RnhkTvhgjzPpOl-0ibE7AN3cogXrm3JzMQq/c5z064m2o3FIR6VKMtu6FD3MsYRnL5KzMkZEvUPuM3a/qaN8rQZbGTeCzFnuZAJw9d1u0ioGh2R=", "keys": ["statusCode", "statusMsg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/inbox/notice_count/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["extra", "log_pb", "notice_count", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/ba/business/suite/permission/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&permissionList=001004%2C001005&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=oJZslKhk9Ki_kIndTqwzmjTib9yL5kJoC8EO43aWMo1pJ15mu8O-C25wyAzA120SgFpKoRNlStkrMHK2diPtIUvCTlOnQcplKeuutqJHyWzhTWJtcR3g5-jv4E-k0kd380c_ECueZ3ql3rtoph04nL1P&X-Bogus=DFSzKwVOXgGANaXRCu5sjInkBjG4&X-Gnarly=MFs4TePIG9Oeh2TDIIahI2J3MhwQunRs-y9vRentBeoJcF1sk7ECsMVez-OLWO0uWAFoOMfI6c/DyJwykZXDv-Uu92ZTTdZbYnGJ-2azQ/7YmyxPlFYfOXoF9qBZ--B9mr/A4Rg1dia/M7I-0IctskiPx7Y-TMOZuZmsCANd0CQFjOq02yny9dyjOOdkJj27oNMpnCVRHa3YESWVqrgit/wxrc/uY7mjMW75GsY0q7IrRt9inNp9lOFwyTsXtiJHC52WeKw1vdcc6avC6UtZ2RzXnlqRll9V4WCNta9DFOEs80dIznI8Z7pj8hOzGw6gJEk=", "keys": ["statusCode", "statusMsg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/ba/business/suite/permission/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&permissionList=001004%2C001005&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=oJZslKhk9Ki_kIndTqwzmjTib9yL5kJoC8EO43aWMo1pJ15mu8O-C25wyAzA120SgFpKoRNlStkrMHK2diPtIUvCTlOnQcplKeuutqJHyWzhTWJtcR3g5-jv4E-k0kd380c_ECueZ3ql3rtoph04nL1P&X-Bogus=DFSzKwVOXgGANaXRCu5sjInkBjG4&X-Gnarly=MJG0LPxziM5kh6sMgCNa868jN41qENdcXTLs7crVr37ox1EYzF4PXNuv26my9ILZ7Nj9guwpbAuY83GqahbnEibQbL7vnBukA4obCPhR2JRy2DcO7hbnX0XhLhUCn818AmTKQSFrfeVbp9A1kVJsHaTzDofTmr8DO8pW/YveQNuuZ/LvMo80xOMIp5hJ0Hclmbi7yamFcLmoex7lWQiMqNcv2EImuM0gYJR42hCJIcUQHwoKTUqup78svaUdVpcXu5BYUyRMD/g5ICuOauqs4U4oHKiCfR-6gSF1/IeEADCVKm8yvzjOlR8jWKcr2cgSgG/=", "keys": ["statusCode", "statusMsg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/user/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&clientABVersions=70508271%2C72437276%2C73720541%2C74087155%2C74444735%2C74534793%2C74757743%2C74782565%2C74879363%2C74926160%2C75004380%2C75004402%2C75014048%2C75030792%2C75132380%2C75150719%2C75163115%2C75183089%2C75204947%2C75207601%2C75224161%2C75227408%2C75236328%2C75248304%2C75252005%2C75257252%2C75266020%2C75269551%2C75289530%2C75308229%2C75312670%2C75328674%2C75331578%2C75331914%2C75334097%2C75341153%2C75350407%2C75352865%2C75352896%2C75358321%2C75373599%2C70138197%2C70156809%2C70405643%2C71057832%2C71200802%2C71381811%2C71516509%2C71803300%2C71962127%2C72360691%2C72408100%2C72854054%2C72892778%2C73004916%2C73171280%2C73208420%2C73952802%2C73952825%2C73989921%2C74008524%2C74276218%2C74413136%2C74844724%2C75330961&cookie_enabled=true&count=5&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&maxCursor=0&minCursor=0&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&scene=21&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=oJZslKhk9Ki_kIndTqwzmjTib9yL5kJoC8EO43aWMo1pJ15mu8O-C25wyAzA120SgFpKoRNlStkrMHK2diPtIUvCTlOnQcplKeuutqJHyWzhTWJtcR3g5-jv4E-k0kd380c_ECueZ3ql3rtoph04nL1P&X-Bogus=DFSzKwVOSDvANaXRCu5sjInkBjcY&X-Gnarly=MxWGlKrAfyNVBROX9m17y4nRdfBR1Z0iUl7jwFEncJljUxH3DOvNIZXrt/JyxldE9kQssC0P8fsPDHRjx4NOjlC5X8SE9xxAmDqHs1Qsp80h-89gj4gCiYT61lshGhBS8-SX/hEj7mFMnhVIZu4HZHc46rilkmbBi8I5BZFCXQ1gCnjKy-so2UySBHJW8ZoKp0TM0-F-QihQ45F8tKHKxbGIYgnbG3695oKjgvzg2Vk6S/5YALE1hy2-lsVB9ME4A6H4zds93hl0wmCTxJ4SdhNQs6jfKLtE7wt8/GtFL6ca2k9eu4R6XYSdhIiPjFS7tfZ=", "keys": ["extra", "hasMore", "isTruncated", "log_pb", "maxCursor", "minCursor", "statusCode", "status_code", "status_msg", "total", "userList"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/global-footer/graphql", "keys": ["data", "extensions"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/inbox/notice_count/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["extra", "log_pb", "notice_count", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/compliance/settings/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&fromWeb=1&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["notify_parents_with_email", "log_pb", "parental_guardian_mode", "parental_guardian_entrance", "age_gate_info", "idfa_popup_allow", "private_settings", "commercial_content_library_url", "minor_control_type", "is_minor", "teen_mode_self", "cmpl_enc", "policy_notice_enable", "device_limit_register_expired", "interface_control_settings", "extra", "status_code", "teen_mode", "screen_time_management_self", "ad_personality_settings", "preference_settings", "policy_info_list", "auto_replay_count", "screen_time_management", "about_privacy_policy_url", "parental_guardian_name", "mixed_age_consent_action"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/inbox/notice_list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&group_list=%5B%7B%22count%22%3A1%2C%22is_mark_read%22%3A0%2C%22group%22%3A661%2C%22max_time%22%3A0%2C%22min_time%22%3A0%7D%5D&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["extra", "log_pb", "notice_lists", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/feedback/v1/newest_reply/?WebIdLastTime=1758119023&aid=1284&app_key=tiktok-web&app_language=en&app_name=tiktok_web&appkey=tiktok-web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&clear_unread=false&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&iid=0&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["err_code", "message", "data", "pushResult"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/notice/multi/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&group_list=%5B%7B%22count%22%3A20%2C%22is_mark_read%22%3A0%2C%22group%22%3A500%2C%22max_time%22%3A0%2C%22min_time%22%3A0%7D%5D&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=oJZslKhk9Ki_kIndTqwzmjTib9yL5kJoC8EO43aWMo1pJ15mu8O-C25wyAzA120SgFpKoRNlStkrMHK2diPtIUvCTlOnQcplKeuutqJHyWzhTWJtcR3g5-jv4E-k0kd380c_ECueZ3ql3rtoph04nL1P&X-Bogus=DFSzKwVOyw0ANaXRCu5sjInkBjcm&X-Gnarly=MRYIKSf1gos4ClZ0pVq2wFVWNlT2Zwk9HRb99EdpQWEUH0/9Fp2jX4T0ZYItK9Qpf4q97CP78sKMuLi38hAX2QRuFSy9H1Kqm5Jotl4e8adEfOjYEJMEqvma3eqFPDb2vEYRZjqayLgmy2zlhXGOFv4bTxR7-KJi-9mo2C-5LXCxgF99EMCX5LxFthvpwFO52lKNMvO3rU4SXnFmqxQd27s9R/Uo-tJC3Ds0UJk3xAWWNMrBkse6jnFJUDVHDMdOR/ZvUMDKJ3HCUv6mGmr-APs05MvBQlpPfiLUzyzctPtvqLHl2d62UheMCC2k6wxyG-/=", "keys": ["extra", "log_pb", "notice_lists", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/global-footer/graphql", "keys": ["data", "extensions"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/story/user_list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&count=10&cursor=0&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&isNonPersonalized=false&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&storyFeedScene=3&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["cursor", "extra", "hasMore", "log_pb", "statusCode", "status_code", "status_msg", "storyUsers", "totalCount"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/search/general/preview/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&keyword=hot%20trend&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=quMZXxYOmSKD1MUJRKz-__zRr3Tbyd-TTwrQ3jeYNjiLa-MgTel9dV4auvyqbbi4jjSccN94U34hJcZy5mD2RmDHN8r4w48i0GUijcxBthG4yvRA5Xw_FI7wBSG2xLyz8-07rLRtKfEWkIGdFOoKXtME&X-Bogus=DFSzKwVOlY2ANaXRCu5sj4nkBjcb&X-Gnarly=MkWV3puiaSNlgfErtsCz-EZqbs6/CZYv42wk4U1VujfLn1yBgeTPEfyFvDvnneVCQJVUy63V1LnXUQJs2SjLMx69bKl/lkc1OVsabQttOqAkT-1nlPQkthjpfSwwSX4ZL5WEjw429FSfEEkxvzAq8oa32pt81hymKn-h5mWZloNDeU-xxiNDnySxOtCOMteXbkDwr8CLPyow/VHCQFeEm-z3BjZ75kxYVfCtsZt8iwm50b-DnMXpN727Cja0CK1U/9Tr9fD2v4kL0L8rMuvT7kxwcdKv7STFQhs5211ZQ/gTP92jaIXANoUfPrD4mjGyjR/=", "keys": ["sug_list", "status_code", "status_msg", "rid", "words_query_record", "extra", "log_pb", "user_input_query"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/user/following/request/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&count=20&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&max_time=0&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_id=6884525631502042113&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=3qKkKhV8iKR4sE-UtQHLrKlCoCiGoEi4k982rLDH4H5RiEtscci2za6E_qry6fotOGu5Gt33eF7NDiJCczcUK6pPIc6HbKZB8JYIBSxnjvBENA8WnYPJtPSLZYK9aLH5AxSvbb4CckrSbB8zScMvSoI6&X-Bogus=DFSzKwVOeWvANaXRCu5sH9nkBjGa&X-Gnarly=MR3zhi2KxobHr9XGLH1r4849RCOWeHnH4a67P5eaUC7f/tjZq7fTYGSyO-LsF5rUPk1-y32jJ3ex4F4zWZDf2DDKd9EYGZYxlx-1UFg7G4eUlLoiXSA9fr3uYrxOxeEgvhjimowK62SvAuBU4dSxkxO50et9LpScoUgOj6vakOajhWHOwwTn7TkR4-XjYDIN8cjwZtca1XWfSIzmNsW8yA20aI9mPxDn5YS9AKsJZATn5ZjmtunD/iG8lCr3cTXb2zi3HNq8yMX8z73DuOCpJYqJwAxORA6NOP6qfW8XkdVdr4/-V0gmFvnLalxuYCJgcXZ=", "keys": ["extra", "has_more", "log_pb", "min_time", "myself_user_id", "request_users", "status_code", "status_msg", "total"]}
|
||||||
|
{"url": "https://www.tiktok.com/tiktok/ppf/api/eligibility/v2?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["eligibility_list", "log_pb", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/search/suggest/guide/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&keyword=hot%20trend&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&req_source=related_search&screen_height=720&screen_width=1280&search_source=general&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["status_code", "status_msg", "log_id"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/feedback/v1/newest_reply/?WebIdLastTime=1758119023&aid=1284&app_key=tiktok-web&app_language=en&app_name=tiktok_web&appkey=tiktok-web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&clear_unread=false&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&iid=0&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["err_code", "message", "data", "pushResult"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/inbox/notice_count/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["extra", "log_pb", "notice_count", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/compliance/settings/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&fromWeb=1&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["age_gate_info", "policy_notice_enable", "device_limit_register_expired", "minor_control_type", "is_minor", "teen_mode_self", "screen_time_management_self", "ad_personality_settings", "interface_control_settings", "private_settings", "mixed_age_consent_action", "teen_mode", "parental_guardian_mode", "parental_guardian_entrance", "about_privacy_policy_url", "parental_guardian_name", "cmpl_enc", "commercial_content_library_url", "policy_info_list", "notify_parents_with_email", "log_pb", "extra", "status_code", "screen_time_management", "idfa_popup_allow", "preference_settings", "auto_replay_count"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/user/following/request/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&count=20&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&max_time=0&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_id=6884525631502042113&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=YX5_Pzp-I9P-hnwBm-gxPOnBn6pJaKhKpM76kUR5Tg818WK5MVrVlb8JYLfRN-XHFTqNDgmr34jv75hI-KlQEkzjg9WyqBPjfGy0AlqCvFJyl82aNKR15wntXb2tU0Mge1i9-hbM8UXLkkRHAL9J7JvvVww=&X-Bogus=DFSzKwVOFGGANaXRCu5Qln2J46KD&X-Gnarly=MkxaFuZ8r758WQXQEDWlF3n7ScRIgNc60L4GaqcVQhCyOqxiydyMQ2SMt2XxJtoA26hhmv7htAMJn9CicCMlUicyfRO9Tk00iCkcRd2ya0AYeaoEILlrn-oEohBjKwG8YVQhYswa81VFEbf0hvjonSbasC6GpZ5sjFaBKeXozGxDmMDTRhdKdUZrfLUU563ADx2yL1MfHYBIU0Dgved/GMsQF/s9RQo5jU9q7D7yeyC9dLNVAkpK9v4Mm48tzytpRY77KvoTKBVB9nHWUOjp0YmyWPktjnl6dkO2VfRFM4jN8CrR3/jas9UVHBEhnXZ0JFe=", "keys": ["extra", "has_more", "log_pb", "min_time", "myself_user_id", "request_users", "status_code", "status_msg", "total"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/inbox/notice_count/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["extra", "log_pb", "notice_count", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/inbox/notice_list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&group_list=%5B%7B%22count%22%3A1%2C%22is_mark_read%22%3A0%2C%22group%22%3A661%2C%22max_time%22%3A0%2C%22min_time%22%3A0%7D%5D&history_len=1&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["extra", "log_pb", "notice_lists", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/global-footer/graphql", "keys": ["data", "extensions"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/ba/business/suite/permission/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&permissionList=001004%2C001005&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=YX5_Pzp-I9P-hnwBm-gxPOnBn6pJaKhKpM76kUR5Tg818WK5MVrVlb8JYLfRN-XHFTqNDgmr34jv75hI-KlQEkzjg9WyqBPjfGy0AlqCvFJyl82aNKR15wntXb2tU0Mge1i9-hbM8UXLkkRHAL9J7JvvVww=&X-Bogus=DFSzKwVOEPkANaXRCu5Ql72J46Kw&X-Gnarly=M/aUeyIvSCAZuq2hqynH9uRPy627DDHPWum2DW6VK4rKpwdPaAwpdaWSXmUBWi4qnaUp6q3Z-KweMtSpQFobK-HiiR4WYyILZW6uCD4i5YlRWhw/1CDgjS6EdstFI8mMJW-N99GyOrdGUE-jh1Ibu6gKKLbOfWleLOG0saqGya7HfHue2F0mUbImqxDmP829BMQ4UVURVqFEkozqTKXWTiSgRaKVnfi0bz7sEBxRvWH/sA71xosJ8A9sCnCN/mKSDM9nc4nnqXGDaLi8UuGzhA5eFSSMglXgG/FDSzZV5xXUr5OjAXBuNe32ax/10kSyY9I=", "keys": ["statusCode", "statusMsg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/feedback/v1/newest_reply/?WebIdLastTime=1758119023&aid=1284&app_key=tiktok-web&app_language=en&app_name=tiktok_web&appkey=tiktok-web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&clear_unread=false&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&iid=0&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["err_code", "message", "data", "pushResult"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/v1/web-cookie-privacy/config?locale=en&appId=1988&theme=default&tea=1", "keys": ["statusCode", "body"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/ba/business/suite/permission/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&permissionList=001004%2C001005&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=YX5_Pzp-I9P-hnwBm-gxPOnBn6pJaKhKpM76kUR5Tg818WK5MVrVlb8JYLfRN-XHFTqNDgmr34jv75hI-KlQEkzjg9WyqBPjfGy0AlqCvFJyl82aNKR15wntXb2tU0Mge1i9-hbM8UXLkkRHAL9J7JvvVww=&X-Bogus=DFSzKwVOEPkANaXRCu5Ql72J46Kw&X-Gnarly=MHXgnTlbDzvT2Ym7/upkmwikZ-KAP38GLn3sosduwJfqW5rZkh2U9e2rszRglf1gZggwnPgNVFqyjEFeAH6rD6XqTb0qiZP/DeZgFIUQZzFCHRwxRjH/T-MOwESPsvOJ6iUeyxfEdkNYzpNx5O60PH4h0Dg1lzKUTIhK94c611o47PhmFb32U/NC5uAym2/eFmZoQw3DE46QbU/R-aC/2SQjqGSKrERs/wR5E7a1qdXB20VOxLpKtFUC8HSyXiya1lU7xdoN3KrskiYzRPGS73MyDiXfFIR-WEqtIh65iF-0tBSxridAwOL9u0kxqMa7b8f=", "keys": ["statusCode", "statusMsg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/ba/business/suite/permission/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&permissionList=001004%2C001005&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=YX5_Pzp-I9P-hnwBm-gxPOnBn6pJaKhKpM76kUR5Tg818WK5MVrVlb8JYLfRN-XHFTqNDgmr34jv75hI-KlQEkzjg9WyqBPjfGy0AlqCvFJyl82aNKR15wntXb2tU0Mge1i9-hbM8UXLkkRHAL9J7JvvVww=&X-Bogus=DFSzKwVOEPkANaXRCu5Ql72J46Kw&X-Gnarly=MwG1SYgz/pwSJca53B5l6LlhXUXw1QxVupk471VBKJlhglKiekdVYrz17qAQrOv85hq-tn5U-GeHOdaj9zU2ds0BoaSJdw1Sb0JfN0q2jXP/0ioZ5qghDH5NjM-VI3Ze5gqVfO9pLj6NvzesulIdfpjnjMFW6tqszz9Tt7Z4u9nRQs5YWMjIB9MiSFM3xgZxzDcl7FJ/ia1XpCNHiI1rX2Dz/UzH4IBHyOuxMhXn8ndGNTc4LMDn3AsMWmgpJng2L3q5HMa0XFkPLvdILfT7zjSBKZx42PWcoYhBydzOQuBBjpaXwG5zEqoy1aBoaFkHT3z=", "keys": ["statusCode", "statusMsg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/global-footer/graphql", "keys": ["data", "extensions"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/notice/multi/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&group_list=%5B%7B%22count%22%3A20%2C%22is_mark_read%22%3A0%2C%22group%22%3A500%2C%22max_time%22%3A0%2C%22min_time%22%3A0%7D%5D&history_len=1&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=YX5_Pzp-I9P-hnwBm-gxPOnBn6pJaKhKpM76kUR5Tg818WK5MVrVlb8JYLfRN-XHFTqNDgmr34jv75hI-KlQEkzjg9WyqBPjfGy0AlqCvFJyl82aNKR15wntXb2tU0Mge1i9-hbM8UXLkkRHAL9J7JvvVww=&X-Bogus=DFSzKwVOF2iANaXRCu5Qln2J46Kg&X-Gnarly=MFUnMWJ6mcMOylEv5sqMZrC4b7PvFchS-mkrOQKpREBs3iCwXQCvNiq6S5BsVyVCVUXFF9W9FrDixoJwSJqdpZNk7hUSSQs009XddPWH3lm2xDM1-bBDdLtzxsctGZaTvu5F11HpY-EKdNmGz-I0Sl7tl9fyDWgO-3-8PmizrSSHQFAeBCsn3VX0gJ7HXZtUSbnxcFMKldAxR1bLrR2BaJnw9kN-ZjmrD5Bax2nESqB62GpBHimE6ki4GR0UJPcDXm4XKtrKDDYE7GQDo0V23WLzfWDzUmhtDhdGmrEHMKZtIZJ-s39uqJG0jzmOPeDPh5R=", "keys": ["extra", "log_pb", "notice_lists", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/story/user_list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&count=10&cursor=0&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&isNonPersonalized=false&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&storyFeedScene=3&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["cursor", "extra", "hasMore", "log_pb", "statusCode", "status_code", "status_msg", "storyUsers", "totalCount"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/search/general/preview/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&keyword=hot%20trend&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=_8spkAsXozIV7PzDc6cHa-lzwC5ElPcb3pW21f6ZTqEMYC6GOoTJOSvvaSjXUS1WbN-eBoPKFHLOZkHemcqwlb1jDk0HWQ6uq4W9oPBPbsilfWMAqeUlAWfuUnPx_7Ek9nV2Z5t6uRsNbydqgyVGLKX40mo=&X-Bogus=DFSzKwVOdiiANaXRCu5Ql72J46Kn&X-Gnarly=MCBiioNAC36OowFL6cwu8md0WjsB5Ppoy5HIWdv9HOgOZuX4oik6JxQ3RwtXHOIAepuLdKl8WK89npqZdzAjcvZ4TQWLzlJe9gt-k7xK-gYgnhrWh8CT2n0KxTaMY0-JpC2pd4czZiLQctwpEqoXDj9hDq2ReopOODleIVjMGlkXPkbZEriXsQuDwjEka8AfO3cOY1lhD7RrGBSYc9kQcGOdaFvYqszQVvIFT-8b5uJzjg4s02oCZ4SdNVJM6pa1tfTJ7X-8UB0TDaEPC198d3Hs5TSxnd5k09k9tFVNjGGlBIlnEHSriPlLYweTFva8ban=", "keys": ["sug_list", "status_code", "status_msg", "rid", "words_query_record", "extra", "log_pb", "user_input_query"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/user/following/request/list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&count=20&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&max_time=0&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_id=6884525631502042113&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=Zj7ZNUoPtai4TUSDXD5GVFD16VaZ1oX86MjhvCJ24GNoGfL_Vja3J5S31M_gxCHKL-Xjt7cyT-lvf0L07SzTRbOVurvWIFpWI0EBqz5rnSCr_w_Ee1nvlQYE7g4PQ9Bov5XxlPukdSTPV2T1L1E1cD3yUuY=&X-Bogus=DFSzKwVOWvGANaXRCu5Qld2J46s0&X-Gnarly=MCtxMPm5PIsMP0HWsKYO669bzcVyX42VU5LUsYh0vr3VyqE9nYWpnQiBVA9iZGtvv3u4/3DDcGtzPnMyIxqxPq0ZbYqTX8kTx7XKMHgS2PldITN292KrxwuvY3RlOkwRpHx9FsmE3Xz1zZgTSh2qswmHE58fiX18HBl1rLXCCbSTHSA8H/4ccLJD1dNgknCoUdWJXSfipXO8u8EpJq7PccV-bXhEs6hYUUlakqLLYWQFpkbFHXdGdrrSqN6uD6Tg/Kv6kOM93czgzBcqw1bhEf4Y623Dzi9bf0AgkqELJpZosZcRHek55GKCt10NWSeKNpA=", "keys": ["extra", "has_more", "log_pb", "min_time", "myself_user_id", "request_users", "status_code", "status_msg", "total"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/v1/web-cookie-privacy/config?locale=en&appId=1988&theme=default&tea=1", "keys": ["statusCode", "body"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/inbox/notice_count/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_mobile&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&os=ios&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["extra", "log_pb", "notice_count", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/search/suggest/guide/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true¤t_placeholder=&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_mobile&focus_state=true&from_group_id=&from_page=search&history_len=1&history_list_v2=%25255B%25255D&is_fullscreen=false&is_page_visible=true&os=ios&priority_region=VN&referer=®ion=VN&req_source=webapp_search_blank_page&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["data", "status_code", "status_msg", "log_id"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/compliance/settings/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_mobile&focus_state=true&fromWeb=1&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&os=ios&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["screen_time_management_self", "parental_guardian_entrance", "ad_personality_settings", "private_settings", "mixed_age_consent_action", "minor_control_type", "teen_mode", "teen_mode_self", "age_gate_info", "device_limit_register_expired", "commercial_content_library_url", "preference_settings", "notify_parents_with_email", "is_minor", "about_privacy_policy_url", "cmpl_enc", "idfa_popup_allow", "extra", "log_pb", "screen_time_management", "parental_guardian_name", "policy_notice_enable", "policy_info_list", "auto_replay_count", "status_code", "parental_guardian_mode", "interface_control_settings"]}
|
||||||
|
{"url": "https://www.tiktok.com/node-webapp/api/login-config", "keys": ["statusCode", "config"]}
|
||||||
|
{"url": "https://www.tiktok.com/tiktok/ppf/api/eligibility/v2?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_mobile&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&os=ios&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["eligibility_list", "log_pb", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/preload/item_list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&count=2&coverFormat=0&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_mobile&focus_state=true&from_page=search&history_len=1&isNonPersonalized=false&is_fullscreen=false&is_page_visible=true&language=en&os=ios&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=&X-Bogus=DFSzKwVOK1iANHwJCu5Qdn2J46KL&X-Gnarly=MOYEGOTA9IUFqX3-vgHO7rMHjQn6fFixR1104VecgcYt5Y4lDEWVlYS20N0YwXHbt0KTQg7pWNWB27tR5vLahSbKsr4BeozAwq0dU8Y4cnT2u7uF-Gh2SugVrx42C8mWeWEdNRXlkAN4LeWjoreW4cvxOhWyJpTOKYk5bsBylmMuhcOQlSzA4k8wi6LsukUuQ3gOP6YpQd4uniiMdDfwpDTDFImL1tTh/R0ZJJbxkjOd8CCARk43zCHDU62Zeqz5uU6EmRF1meTrhqZ0O0mWuveTSYd/PObLWabJDMZHBKsyEhtBYqfVvOaCiNPeiOkXc6z=", "keys": ["extra", "itemList", "log_pb", "statusCode", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/v1/web-cookie-privacy/config?locale=en&appId=1988&theme=default&tea=1", "keys": ["statusCode", "body"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/inbox/notice_count/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_mobile&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&os=ios&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["extra", "log_pb", "notice_count", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/search/suggest/guide/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true¤t_placeholder=&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_mobile&focus_state=true&from_group_id=&from_page=search&history_len=1&history_list_v2=%25255B%25255D&is_fullscreen=false&is_page_visible=true&os=ios&priority_region=VN&referer=®ion=VN&req_source=webapp_search_blank_page&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["data", "status_code", "status_msg", "log_id"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/compliance/settings/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_mobile&focus_state=true&fromWeb=1&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&os=ios&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["cmpl_enc", "policy_info_list", "auto_replay_count", "log_pb", "screen_time_management_self", "ad_personality_settings", "parental_guardian_entrance", "interface_control_settings", "idfa_popup_allow", "commercial_content_library_url", "notify_parents_with_email", "minor_control_type", "parental_guardian_mode", "teen_mode_self", "age_gate_info", "policy_notice_enable", "device_limit_register_expired", "private_settings", "mixed_age_consent_action", "status_code", "is_minor", "about_privacy_policy_url", "parental_guardian_name", "preference_settings", "extra", "teen_mode", "screen_time_management"]}
|
||||||
|
{"url": "https://www.tiktok.com/tiktok/ppf/api/eligibility/v2?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_mobile&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&os=ios&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en", "keys": ["eligibility_list", "log_pb", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/node-webapp/api/login-config", "keys": ["statusCode", "config"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/preload/item_list/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&count=2&coverFormat=0&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_mobile&focus_state=true&from_page=search&history_len=1&isNonPersonalized=false&is_fullscreen=false&is_page_visible=true&language=en&os=ios&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en&msToken=&X-Bogus=DFSzKwVOK1iANHwJCu5Qcw2J46B4&X-Gnarly=M5A-n6eIzDg1dT2FF13W6ebBRfnzPfE9kRb-qJ5dGLDdpSSe-y5rPjWTCwazvIzQaVmoGCrm1GOeVofah0RBIXZv0i3961SvxzOYggdd/qE87KEfHoTI1pHeyazUGcSXG8cRD46yPc1pbKOzdnJUn6duBwbeYQms8ExEIVDc2RfSpNzeoBnrxt7zoSCcD/eGlfEWu/tq-PvzGmCrrWk0D8nTYx/CADTzB5YZFQUgnCporCGkErjp0v3bf4D1aK83Noc2RTeIkpKiW-CwvMF6S-1PVWE1DBQ8NldYPBfCTTJJvv6a2P9VvATvA11HNOh8z0n=", "keys": ["extra", "itemList", "log_pb", "statusCode", "status_code", "status_msg"]}
|
||||||
50
backend/all_responses.jsonl
Normal file
50
backend/all_responses.jsonl
Normal file
|
|
@ -0,0 +1,50 @@
|
||||||
|
{"url": "https://www.tiktok.com/tiktok/ppf/api/eligibility/v2?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en", "keys": ["eligibility_list", "log_pb", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/search/suggest/guide/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&keyword=hot%20trend&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&req_source=related_search&screen_height=720&screen_width=1280&search_source=general&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en", "keys": ["status_code", "status_msg", "log_id"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/story/user_list/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&count=10&cursor=0&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&isNonPersonalized=false&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&storyFeedScene=3&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en", "keys": ["cursor", "extra", "hasMore", "log_pb", "statusCode", "status_code", "status_msg", "storyUsers", "totalCount"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/search/suggest/guide/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&keyword=hot%20trend&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&req_source=related_search&screen_height=720&screen_width=1280&search_source=video&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en", "keys": ["status_code", "status_msg", "log_id"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/feedback/v1/newest_reply/?WebIdLastTime=1769093917&aid=1284&app_key=tiktok-web&app_language=en&app_name=tiktok_web&appkey=tiktok-web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&clear_unread=false&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&iid=0&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en", "keys": ["err_code", "message", "data", "pushResult"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/user/following/request/list/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&count=20&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&max_time=0&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_id=6884525631502042113&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en&msToken=yf2SkeEd8mpRzeFVO_o9WEjvaUlV3zWKc8VyjXgAVGByMuLRNwanRR2SD8hSKEsbozKkztC4OPYwCOFI1_ThTWMh399OVBudcLBOaDwyflgn6Q3Sz5ekKcdIRv6PTk5gNSEnBWkxhTv4xWfoFHRS5Y_VZsZXdA==&X-Bogus=DFSzKIVOUKbANJZMCu58d1wyWdbQ&X-Gnarly=MCh2fkYqIw9kGXih-yCZMzh0jKRnUA9UTa0OmNrL/CgCqbzMbQC6CqbbEr/QtxMblr/xd095euEqjlQE4ajAmg7xFfJj9plxvIDPhURngRkqFwRV7QIi9GTFynzfm8Ar6AfxCLlO9n7yGuGkDc8604znpwRffvVipe4lYC7-dkl9ToIaROPywy6ONnRyNZM5/ZuEwWB-xK40LoSf8EOyyLK7DWyVJx//MtaIiNR8TiplOj/2sFU9Fbk7h2DNSWXF2OFcbni4bPlC-83N9WkCuCLnPs4pGZ9PXiD98N8H2mLDH5Zdv2SijbFWZZ9u/jFI9b/=", "keys": ["extra", "has_more", "log_pb", "min_time", "myself_user_id", "request_users", "status_code", "status_msg", "total"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/inbox/notice_count/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en", "keys": ["extra", "log_pb", "notice_count", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/ba/business/suite/permission/list/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&permissionList=001004%2C001005&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en&msToken=yf2SkeEd8mpRzeFVO_o9WEjvaUlV3zWKc8VyjXgAVGByMuLRNwanRR2SD8hSKEsbozKkztC4OPYwCOFI1_ThTWMh399OVBudcLBOaDwyflgn6Q3Sz5ekKcdIRv6PTk5gNSEnBWkxhTv4xWfoFHRS5Y_VZsZXdA==&X-Bogus=DFSzKIVOYLTANJZMCu58d1wyWdbl&X-Gnarly=MOBv-q4wYnrPM4AQcBIj4U9BEL8R8ANtzOCy/45SdzRwSDmRubcX4PgHmWB1T60/46mQacFd7iVJ0btloG2FUa16kc3O5X3lSACLmdYQgMFch0woMTvXGFyuiO651X3Qj5WddSFOL/WmEnfLz68HnS/h569S6Zl87MyvaXh9496S1Rcv-YI6IY9weMAGY4HJfEw5FkPBn0jKzMu3/-w0VZbbhIlCkomSRNF1oZ6ImBELhHPQ-Rl-Z4ys7fisNu2aiJBze02aLkjN-jQU96NAJrBwpn8sUlvhAPK7-aR2wc5pVQYwFq7p00f6Q99BBBsxL/b=", "keys": ["statusCode", "statusMsg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/ba/business/suite/permission/list/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&permissionList=001004%2C001005&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en&msToken=yf2SkeEd8mpRzeFVO_o9WEjvaUlV3zWKc8VyjXgAVGByMuLRNwanRR2SD8hSKEsbozKkztC4OPYwCOFI1_ThTWMh399OVBudcLBOaDwyflgn6Q3Sz5ekKcdIRv6PTk5gNSEnBWkxhTv4xWfoFHRS5Y_VZsZXdA==&X-Bogus=DFSzKIVOYLTANJZMCu58d1wyWdbl&X-Gnarly=MwPPTq4PrErIRNAd7UZSSG3rOxO9zi50X/sp1gwR2HoZZcGwv9bt-c1teRwatl63280vmNtz3hJoFcoxMQSqx0YmfVCxsUwyd-8wWr8WG4ilcMnJbZd32hHNHU4jWwHCV5ormJAwFlkinyVHawkpQVNcUu-Gki5ejcfYwvdsGuV/WBP7qcYqYdklpVWCL0PbbIU43CVhwaXasH9B-E3K8nhLYnyB-lVJfyMFuUB56VJopCHg8bvkh233zNjLJQpvkENru7QKP6OIH/4-1S3M4WFQL5/EggJ13yrMTjnwkRT7Kbd7KgmNAhHgwqi33kVXR9z=", "keys": ["statusCode", "statusMsg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/v1/web-cookie-privacy/config?locale=en&appId=1988&theme=default&tea=1", "keys": ["statusCode", "body"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/feedback/v1/newest_reply/?WebIdLastTime=1769093917&aid=1284&app_key=tiktok-web&app_language=en&app_name=tiktok_web&appkey=tiktok-web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&clear_unread=false&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&iid=0&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en", "keys": ["err_code", "message", "data", "pushResult"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/ba/business/suite/permission/list/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&permissionList=001004%2C001005&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en&msToken=yf2SkeEd8mpRzeFVO_o9WEjvaUlV3zWKc8VyjXgAVGByMuLRNwanRR2SD8hSKEsbozKkztC4OPYwCOFI1_ThTWMh399OVBudcLBOaDwyflgn6Q3Sz5ekKcdIRv6PTk5gNSEnBWkxhTv4xWfoFHRS5Y_VZsZXdA==&X-Bogus=DFSzKIVOYLTANJZMCu58d1wyWdbl&X-Gnarly=M8ghxSnY3aoYQdcBjs1FDCNHKr2gX1SyzO4f0a/ZMhw04Qf4pH/O1h63INXMDhQc5FG/4EHbYtKCjWY8BLcQUxsLFeHAswN5dwNy3HwVqXIfyDs4U-qTrqWsViiFxiy3mU4yzhSDs0-kxZuMh/5yJV962RaIthWWndhpgng2PuZogItch18-WW0NxvqAOvVq4KV2Mhux-Uen9DTUdwXF-J9ViwKQW3JGtUYdrShFc208aPSRfrp7SW8razbHO0PfeyfH8-VI-b9SLxQUKl6cSK9365LskIVTKlx87qQm2LAxwkcm5aI6RN/JquNLPNyqOTG=", "keys": ["statusCode", "statusMsg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/inbox/notice_list/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&group_list=%5B%7B%22count%22%3A1%2C%22is_mark_read%22%3A0%2C%22group%22%3A661%2C%22max_time%22%3A0%2C%22min_time%22%3A0%7D%5D&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en", "keys": ["extra", "log_pb", "notice_lists", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/inbox/notice_count/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en", "keys": ["extra", "log_pb", "notice_count", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/notice/multi/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&group_list=%5B%7B%22count%22%3A20%2C%22is_mark_read%22%3A0%2C%22group%22%3A500%2C%22max_time%22%3A0%2C%22min_time%22%3A0%7D%5D&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en&msToken=yf2SkeEd8mpRzeFVO_o9WEjvaUlV3zWKc8VyjXgAVGByMuLRNwanRR2SD8hSKEsbozKkztC4OPYwCOFI1_ThTWMh399OVBudcLBOaDwyflgn6Q3Sz5ekKcdIRv6PTk5gNSEnBWkxhTv4xWfoFHRS5Y_VZsZXdA==&X-Bogus=DFSzKIVOvzUANJZMCu58d1wyWdLo&X-Gnarly=MJd1vzDhCHkjXwUcK5h8Q/ME8qGSAcWqLcS89vuKCc3XXs2dDnvO/r8f1Gy7l8kBItjGplKJt4i8WrWaaRk-yKXJdffFNGAc9IzgvEFfjiPrQ2YAGQ5-YQHWs0xeYDF91g-4bQNJ3S-X1pVS3Us3tCzDGq88MFKmKlJdvzWiUwjZu5869V8a8S7Om1KqOi2wMAiarrZqFhabZAdGebvWfPOIPuN69mFLnqMqDX1NASwjl8frm/8rhyKjGLP938CmrkqVbHO1U1r9gyZC-JuP0921rsr0BYGQIn5K59tYYKrjg9GkBoXu575MPxPdWqpCKgb=", "keys": ["extra", "log_pb", "notice_lists", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/global-footer/graphql", "keys": ["data", "extensions"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/compliance/settings/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&fromWeb=1&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en", "keys": ["about_privacy_policy_url", "parental_guardian_name", "mixed_age_consent_action", "preference_settings", "policy_info_list", "auto_replay_count", "log_pb", "teen_mode_self", "status_code", "minor_control_type", "screen_time_management", "parental_guardian_mode", "parental_guardian_entrance", "device_limit_register_expired", "idfa_popup_allow", "cmpl_enc", "age_gate_info", "policy_notice_enable", "notify_parents_with_email", "extra", "teen_mode", "screen_time_management_self", "ad_personality_settings", "interface_control_settings", "private_settings", "commercial_content_library_url", "is_minor"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/global-footer/graphql", "keys": ["data", "extensions"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/search/general/preview/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&keyword=hot%20trend&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en&msToken=xO4PD8oQNiS59ICpwUtKD0v5gBd1OQ8CyDV2b7XSxwAMuVJ6c1rc3ZSApGTwGgte1lAiUG_Ny2PO4-Zd2U94blec1t_UpzHho0wDMe_xALD36p90vP76okF75OvbyaBABYK5yHfIkfPY6zB9z7moiM0dYSWwqg==&X-Bogus=DFSzKIVO7tbANJZMCu58dZwyWdqL&X-Gnarly=M/IlZIV97mvw7e/R3HloobJZJGr8toTkU-j-fAnLAua3-Bt5z4BtiJ/sChqSc2y2tOTLa7C0pvtS1aba4V161dX1G99NMxH8aHHz8HNDhC4wa3ZriTwMHiK8Q7i2v1FGhz3AsurExEqVr-g2CPpfyvUb9h6NfzUpUZtepKBPiOyE50DxBurNiG3/DzlJegkWGXod58zEFCWjaE61K3lcX3CSYqBKYQWq/r3OiBTmTqxAKIpTW4S5tsh8z0CQXuXulbNJ667zF5n31kktPOVx9Sx6PFyQnzJeV99yADunQyGjMTGSSiyBr63li-5ymbveEIf=", "keys": ["sug_list", "status_code", "status_msg", "rid", "words_query_record", "extra", "log_pb", "user_input_query"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/user/following/request/list/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F120.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&count=20&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=2&is_fullscreen=false&is_page_visible=true&max_time=0&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_id=6884525631502042113&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en&msToken=aUVUlxd9gqJ8x6OvlQCaiQgpALBD0wd67idERNIoOtMUmGyiDFepqIqTBIU0kKkAm8S6qbmm3Tco7G7pULVel_pIMACD1e0ISFZcb95MQjvvQQZL0DC7xY99c5fNDa-N29lF4dPvUydhD01JL7PjPDvm7p17UQ==&X-Bogus=DFSzKIVOY3TANJZMCu58kHwyWdL7&X-Gnarly=M/5AwbsqGMkkuSHdcGJWR/YXZ/6qcpX054UoBEN7o2VvI0Fr1gj/TAtT2TQ04sjAkKuRosbzKTl72pHxks2GxN1gWEeBziGpqo6fPJbIa91EG/XRyiBN5puucTRiQsdNWWPYUs/p3Pu54s2saH9RYUJSk4i6CZqcgtoIx3jZD1yWhu/UF7SLETNhz-w/YuPn-DaSUshdt7vujga-qqShXuTqrlJWYXRv83nmtmIZLc3-K3TwnZJ1lYIpFCL-JIMHDm31-LL8vk9K9QE1eLl4tGj7Av2tZg/R1gGrMHmbmCC9k0KPNdgICBmvHavRK9d0wLb=", "keys": ["extra", "has_more", "log_pb", "min_time", "myself_user_id", "request_users", "status_code", "status_msg", "total"]}
|
||||||
|
{"url": "https://www.tiktok.com/tiktok/ppf/api/eligibility/v2?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en", "keys": ["eligibility_list", "log_pb", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/search/suggest/guide/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&keyword=hot%20trend&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&req_source=related_search&screen_height=720&screen_width=1280&search_source=general&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en", "keys": ["status_code", "status_msg", "log_id"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/feedback/v1/newest_reply/?WebIdLastTime=1769093917&aid=1284&app_key=tiktok-web&app_language=en&app_name=tiktok_web&appkey=tiktok-web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&clear_unread=false&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&iid=0&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en", "keys": ["err_code", "message", "data", "pushResult"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/compliance/settings/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&fromWeb=1&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en", "keys": ["notify_parents_with_email", "auto_replay_count", "extra", "log_pb", "interface_control_settings", "private_settings", "mixed_age_consent_action", "preference_settings", "screen_time_management", "screen_time_management_self", "age_gate_info", "policy_notice_enable", "about_privacy_policy_url", "ad_personality_settings", "parental_guardian_name", "idfa_popup_allow", "status_code", "minor_control_type", "parental_guardian_mode", "parental_guardian_entrance", "device_limit_register_expired", "commercial_content_library_url", "policy_info_list", "is_minor", "teen_mode", "teen_mode_self", "cmpl_enc"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/feedback/v1/newest_reply/?WebIdLastTime=1769093917&aid=1284&app_key=tiktok-web&app_language=en&app_name=tiktok_web&appkey=tiktok-web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&clear_unread=false&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&iid=0&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en", "keys": ["err_code", "message", "data", "pushResult"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/global-footer/graphql", "keys": ["data", "extensions"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/v1/web-cookie-privacy/config?locale=en&appId=1988&theme=default&tea=1", "keys": ["statusCode", "body"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/user/following/request/list/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&count=20&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&max_time=0&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_id=6884525631502042113&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en&msToken=5U0RDzWDiSUzwfJCXRZDhrekiAEsWpeKlVSwRx-K9xjB0aFs9GvTiPG0J1i40OGNdhLirZwFO3itBZoPnLllt-9XOL2Xj2NO1S7Ng-zINjnu1WwxxHSColTn5bzStm5udBL0mrp_YGj0NBxgurqVL6LGqlQ=&X-Bogus=DFSzKwVOKytANaXRC-2sod2J46K5&X-Gnarly=McTqp-7TQ/Ls-BkPZcrHOx2DHD-FHjpy8DftfN3ZLkj6orgLA6ATSmxkKqM5qnM/nlqiF2UgaPVPAGDyEsBe0FFz-W4cmt0xeXmCBv/VIS0ELcv0j4hztHRGuwF36Z9FHvYB6vss-1bGhN6sEhi0YeqHee4h7BLOhQRYCAno/86e-fWle2Vxwb8Hkt2QmgmUsRkCz-5bi5JINsj6VkL8xlyudF-oYJdjId-ABWvuwKvI38VEAk-VZic6gMMZMGgYLW2zd0r4e5lJSmUkl5zweOt3qvtY-RKptuZpif-M/h-or3px27alE0O1uL0XaZFPeLK86vobLI==", "keys": ["extra", "has_more", "log_pb", "min_time", "myself_user_id", "request_users", "status_code", "status_msg", "total"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/inbox/notice_count/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en&msToken=5U0RDzWDiSUzwfJCXRZDhrekiAEsWpeKlVSwRx-K9xjB0aFs9GvTiPG0J1i40OGNdhLirZwFO3itBZoPnLllt-9XOL2Xj2NO1S7Ng-zINjnu1WwxxHSColTn5bzStm5udBL0mrp_YGj0NBxgurqVL6LGqlQ=&X-Bogus=DFSzKwVOhmiANaXRC-2sod2J46QK&X-Gnarly=M5OS2mcyff4AwSkko8gusAcRZnWKjK4UjNPj7e7NiwDlhxb8ivFK0iuU493-VHIKoCaViEyW89UPaC4mI43KbF-z5ts1m6xT8PRVD0dF4UlChBAyPuECGN7iq-4mTJ904RiQMlitY4f2mXL3dtNCOfayNpmq3-GvnJMfAbIkk0Z6OUjcghuujw1dKeOjQuJ90CT0jZuhMudwU3WCXF4TUhSvUp9JHlmKT4l1ulBGMLQFOzvzw3Kk9MK9kKThMHMOhGrs23zCJgFqqzoX8o6g614fKFYEFsN1cyCHanb58/EKM1eDJ0dU247dwabhf9T8-/jNQnFcJI==", "keys": ["extra", "log_pb", "notice_count", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/ba/business/suite/permission/list/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&permissionList=001004%2C001005%2C025007%2C025008&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en&msToken=5U0RDzWDiSUzwfJCXRZDhrekiAEsWpeKlVSwRx-K9xjB0aFs9GvTiPG0J1i40OGNdhLirZwFO3itBZoPnLllt-9XOL2Xj2NO1S7Ng-zINjnu1WwxxHSColTn5bzStm5udBL0mrp_YGj0NBxgurqVL6LGqlQ=&X-Bogus=DFSzKwVOf8kANaXRC-2sod2J46B9&X-Gnarly=M5dnRGyXhDj24ZkomFvznMw8kfnaBB7MXfotkjI/dy2pO0Mk/qNer8Y1DDQFk13/OSaaFGfmZQIb2Eu39K0yjxIVeekzEEh2PY00UlRSlfIM5FQnbM-P0nzyHBxyjFni5bVct462HbUH1y8ye9QfZeMpYDYSmJL26vAc/iBfHtGKI2vUVlk4cVM-4lrITJWHCBsnPhhMXhEPj9r0HOjQhWjER0JNnFRckjFbL-sG5gCThRMcldct5uxEdHxnivdzsuEt8G-nr8B7ZcEO8g6W6M/DP-tlGCvL9KlAOkEk-f1AVhqrE-KqqU1yud-zTDqldemZ4k/JZu==", "keys": ["statusCode", "statusMsg", "permissionList"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/inbox/notice_count/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en&msToken=5U0RDzWDiSUzwfJCXRZDhrekiAEsWpeKlVSwRx-K9xjB0aFs9GvTiPG0J1i40OGNdhLirZwFO3itBZoPnLllt-9XOL2Xj2NO1S7Ng-zINjnu1WwxxHSColTn5bzStm5udBL0mrp_YGj0NBxgurqVL6LGqlQ=&X-Bogus=DFSzKwVOhmiANaXRC-2sod2J46QK&X-Gnarly=M5Io15YxcJraC1wKYXcvvxlCw0unJaKIf3Shz9v5RtOW54c1Zk8iMVHkTiWx9RSCyk0C/S7v1bPR2Vh8G2d5TFW4c8vycKZA6Uddy08w637T2Y7BE3tS7Rzha5s00t6KXG2gjaObsF5a3-4Hgwv9EgG6vURJpuWloVPnwrcNcn7FRB7jn1SqzXZ0R3Var6pdnYcxQlpWHFwJRpPB2uuomDl0hc4sA98UgEN-Rv2SLFNoYKEUDwo-Y5uGOm9jN3OhalzOXmLaSPQtqZfoSVgZGfJqH6uY0DyCG6bSvNqzSOJY38zENh9bbYDRPi8ivrV73HxZrmUyhZ==", "keys": ["extra", "log_pb", "notice_count", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/ba/business/suite/permission/list/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&permissionList=001004%2C001005%2C025007%2C025008&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en&msToken=5U0RDzWDiSUzwfJCXRZDhrekiAEsWpeKlVSwRx-K9xjB0aFs9GvTiPG0J1i40OGNdhLirZwFO3itBZoPnLllt-9XOL2Xj2NO1S7Ng-zINjnu1WwxxHSColTn5bzStm5udBL0mrp_YGj0NBxgurqVL6LGqlQ=&X-Bogus=DFSzKwVOf8kANaXRC-2sod2J46B9&X-Gnarly=MRbJJo4-4Xcinsxt4xASeSAU1KlESXfVVVoNxivfeYtof3lqSXZYnwozVZ-aCcS9fB9pGYXDFqupbDTcgnCOYuOeS3F4bwmGhgU-4GlGHLsbn16PbdOPyFVc72BvhzuB1Luw8h6zO50w15d--IT8427YA6nZ4VZxrXBod2RLd4J5n30eYPKkbCZ0A5avrVs/cByuw8Dwd/RiBqXhms-Nq7-KuS3sHOtLdQOINRPGVrkvJ2OJEd3c3X0B/uHBNSJkX10KnpybpjL/-bNwh1xttZxqeFXivqLGEoeFBIOmQEBgylW1mh0N0RaqFb6yU/cY5EyvX2V3XI==", "keys": ["statusCode", "statusMsg", "permissionList"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/inbox/notice_list/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&group_list=%5B%7B%22count%22%3A1%2C%22is_mark_read%22%3A0%2C%22group%22%3A661%2C%22max_time%22%3A0%2C%22min_time%22%3A0%7D%5D&history_len=1&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en&msToken=5U0RDzWDiSUzwfJCXRZDhrekiAEsWpeKlVSwRx-K9xjB0aFs9GvTiPG0J1i40OGNdhLirZwFO3itBZoPnLllt-9XOL2Xj2NO1S7Ng-zINjnu1WwxxHSColTn5bzStm5udBL0mrp_YGj0NBxgurqVL6LGqlQ=&X-Bogus=DFSzKwVO4YGANaXRC-2sod2J46B7&X-Gnarly=MPZQX1WdyRgCUr//YKhGwJmfy3RvIB4upf/jL2C7mJ-z1C42Tk/SQ//B0IVJBfIkSxdt0-91-W86XL1RgMUGW0ud-7Cr8qWDuLTNKbMH0RmM/EFt9bb-Vcx08oKrghnz11H5l9N5cVZsVSyRNRmXLPgUaOaOaPDF-PLq1XpLUnj-fZ94EMq55UCHYgRhWM4TeALZtJzBGGYazduK0ukphaZLSUx/-1c3sL1SeVxXcF5/h81u6uleyCWuTtCWkVOb5DmfUBuSb5370Tm7i62GsBbCcBfAf/437zFQf4GLFZb4F/cbRtyizY7-fbST888b-5LygYOuEu==", "keys": ["extra", "log_pb", "notice_lists", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/ba/business/suite/permission/list/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&permissionList=001004%2C001005%2C025007%2C025008&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en&msToken=5U0RDzWDiSUzwfJCXRZDhrekiAEsWpeKlVSwRx-K9xjB0aFs9GvTiPG0J1i40OGNdhLirZwFO3itBZoPnLllt-9XOL2Xj2NO1S7Ng-zINjnu1WwxxHSColTn5bzStm5udBL0mrp_YGj0NBxgurqVL6LGqlQ=&X-Bogus=DFSzKwVOf8kANaXRC-2sod2J46B9&X-Gnarly=MHoI4Fv1s9dzxbKvYHbpYEv41btQaAsUJtUOb4-55bMBIME5s9R7YSVkY9gicjkidrxe/dt3jBx/bJbcLjn25jq3KtWkamgrcBbo3uDPGj0SQ0CnxIcVMkxwHkXDXkIMsImqH7b-4n7jieXnwckESFVC0919h6E5GdsbfxKmyNH9TeSonA2-PXIcQrUVAQvC4yswQsVroryk6IQyAHawXIN6W3l8CR9jbCe16SZp3hBRWbpHmYgd5m2X7YxvjyOTuTdeRdP2bIFC5H7ksab-xcXmbPUYIHgCPYHdBHGsXbEvayFskFd2N2wAqgpD6mCzDdTYez94NI==", "keys": ["statusCode", "statusMsg", "permissionList"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/notice/multi/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&group_list=%5B%7B%22count%22%3A20%2C%22is_mark_read%22%3A0%2C%22group%22%3A500%2C%22max_time%22%3A0%2C%22min_time%22%3A0%7D%5D&history_len=1&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en&msToken=5U0RDzWDiSUzwfJCXRZDhrekiAEsWpeKlVSwRx-K9xjB0aFs9GvTiPG0J1i40OGNdhLirZwFO3itBZoPnLllt-9XOL2Xj2NO1S7Ng-zINjnu1WwxxHSColTn5bzStm5udBL0mrp_YGj0NBxgurqVL6LGqlQ=&X-Bogus=DFSzKwVOfsJANaXRC-2sod2J46QO&X-Gnarly=MCZNQs35QsWMT19R3oK3koJUeQX0iGLS0dO0b5WHpg5nMR6mUhh6xDsVyoEq213mLCoTwPQWaZFywl6-tVtORyEasgySEh-PRTeprBSFgzsS3GAY1LtyxiwvyQIyZT9XyALqqKh9tGWmy1n7515jG-FFvk7ZVLAJ-XvYlhRZsXjRZ3RxoBF19F-04JdH3IruyxqHSQ8M4Lx9-JhRPe0TKG/icqAwyUNio4VNen9NkhLX57Q7o3tsvad82W0AGiLRvVDtHQRsnOefh8HURDD6I8elq9GWLAZECOQwdwsQl582FJWJD02xDXtNVBUpUJw7GYtcFmniMk==", "keys": ["extra", "log_pb", "notice_lists", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/global-footer/graphql", "keys": ["data", "extensions"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/story/user_list/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&count=10&cursor=0&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&isNonPersonalized=false&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&storyFeedScene=3&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en&msToken=5U0RDzWDiSUzwfJCXRZDhrekiAEsWpeKlVSwRx-K9xjB0aFs9GvTiPG0J1i40OGNdhLirZwFO3itBZoPnLllt-9XOL2Xj2NO1S7Ng-zINjnu1WwxxHSColTn5bzStm5udBL0mrp_YGj0NBxgurqVL6LGqlQ=&X-Bogus=DFSzKwVOJzkANaXRC-2sod2J46sE&X-Gnarly=MOE5owaQmnF3KsNZBdfeiSlmyixPuc4fbP2i1tYW13yzgah8XZX3hKA1AMGU1a2KYHUQHgzvUY353H7ct-wDMuIzBdpRcI6aCp4gDDxMH7qhXupKyirQPBFBG8PDDk9QmVUV5xkqWAQr9hEE-aeNprbmeel/7qBTAy9XtUXvq8RlO6i5199XIsah-FPhjjAlnOiWaJrsCp85UygWV4GMFI39rRiuJMIxl9EKfw0EsAQF8O/HSbVQWpwCwuVaGngIVQwAtCTogPpVAhwr6RwnAjjx1ULMlObyd7/C-39WF2eQLtL6oFtIdUlJeeJ7g3WCgz1alxrPak==", "keys": ["cursor", "extra", "hasMore", "log_pb", "statusCode", "status_code", "status_msg", "storyUsers", "totalCount"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/search/general/preview/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&keyword=hot%20trend&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en&msToken=ILIzJgti9oEKksruJbbmi1H6uBu2nPxRgr9oI02Wjf87-nBd5TZX4eneaJNMU_h7BOcogmSAJnodLChIuYo75CwSulmxeAtLMeC152nk5GHVYZfdxi4JXSO2Rwo_0QE1Ayt2ZbWegGlLhR9J8CWolI95XdM=&X-Bogus=DFSzKwVO-5vANaXRC-2sod2J46Qe&X-Gnarly=MHe2TmXf4F91/1eO7rrUvMJc2AawxjxoSm6i9bN8f82u72ueB0UeSAMcYhNFlsCZK2o6I4ojhqto79MwRx/awQJcATwqz69d2ouXRorwrsOS7g6dgQnXD61nsiKl2HJ0XXf7UaRgEb0UDAsUIzD-uy3o0CnjGAEfd6MLpqBUBnEyRBbaiflWTTfJU9JusS3hb/PTiJivT/XHGW5r8UeeHLnYy1isNiGhDq33Zk0Y5J5I7b/PDy4--43dp5/m2UxK0BU1CBQBsLIHljezZ38axl/aLgEhgbGY837Qgz6gF7bekhmsRh67zXid-IJHv7ZItmZZCZmwqI==", "keys": ["sug_list", "status_code", "status_msg", "rid", "words_query_record", "extra", "log_pb", "user_input_query"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/prefetch/explore/item_list/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&categoryType=120&channel=tiktok_web&clientABVersions=70508271%2C72437276%2C73720541%2C75163115%2C75294819%2C75361163%2C75428705%2C75635433%2C75638230%2C75650499%2C75653719%2C75843653%2C75844157%2C75853335%2C75861400%2C75878361%2C75892453%2C75895817%2C75896366%2C75897568%2C75906135%2C75907770%2C75909186%2C75933865%2C75962579%2C75986062%2C76009533%2C76024531%2C76043568%2C76044897%2C70138197%2C70156809%2C70405643%2C71057832%2C71200802%2C71381811%2C71516509%2C71803300%2C71962127%2C72360691%2C72408100%2C72854054%2C72892778%2C73004916%2C73171280%2C73208420%2C73952802%2C73952825%2C73989921%2C74008524%2C74276218%2C74413136%2C74844724%2C75330961&cookie_enabled=true&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_new_user=false&is_page_visible=true&language=en&odinId=6884525631502042113&os=mac&priority_region=VN&pullType=1&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&video_encoding=dash&webcast_language=en&msToken=ATQCZYuo_YRovMrLb_vL8FWqc_30OnwYtyJRNQrLNhiZXeiNH8A3mTwlxrhUlOYNGjeL8kM-xOHdqMBFnMXi03IP3Q3UFaMzxwaOTe0cf10VfDxdOzsQp33ilmKMFwHiPso4sZFyCLh8H5WviDNoXdiLYTE=&X-Bogus=DFSzKwVO5whANaXRC-2sbn2J46KJ&X-Gnarly=MRn9-8ShKQsJBRFmtPxg60ptzuHO9RLS2eORhxGkfF892SS0uLM5dyfs7CAGRcjZvBbhTfpi80oLwbxs22MuozsMCD52RYb-Saci1NfbOEziwWIFMSPELBqIZuHu0qa1KwCwLboPbEj1NNhSoBHE6Fn0jhjNw5ElS1-3zUB0DrtIxVQV1NN9Ng/0mFmPQKa0pNcNKGPNRUVPE-XbGwB4VDLTc60uA-6dEyZDGCfXwxPLKLaHIS-pSSxIe4LG86a5AR3Bx4zDXJa2O1abGAFMfifk5a3uPBJRShQkPHbyXL3TKTXZx99wanzgUG86MCnP-BUCdlUFPI==", "keys": ["extra", "log_pb", "statusCode", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/user/following/request/list/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&count=20&data_collection_enabled=true&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&max_time=0&odinId=6884525631502042113&os=mac&priority_region=VN&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_id=6884525631502042113&user_is_login=true&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en&msToken=ATQCZYuo_YRovMrLb_vL8FWqc_30OnwYtyJRNQrLNhiZXeiNH8A3mTwlxrhUlOYNGjeL8kM-xOHdqMBFnMXi03IP3Q3UFaMzxwaOTe0cf10VfDxdOzsQp33ilmKMFwHiPso4sZFyCLh8H5WviDNoXdiLYTE=&X-Bogus=DFSzKwVOvFiANaXRC-2sbn2J46BZ&X-Gnarly=MJVwgTcb8RwuF7GTbIXjiWpf8XBnggAfHedyaja30WLxARTK3tqwIyJcOMqrorv-CmDlZO-imOtm95QxF4KU5yi3a-WGrZQejMyTCP1AT3qGnkRCy3TRpNrs3alflFpyHzwDJGOT4noq/jMd6xHt7pvk-EtQK6NUl7AetuuVVNwI/DbLmXuKRD9C52gVq/7EVnUFzPmqfiGptizJBq-/l3/5NqzJmSq9eqed5Wjq3kH6KMzrK1qJMnWOWS5SJv78pFx4/197WKIJEcCmsFUK6Cq59Er-pYPe-obFb/ABDnKaE76PwI6t6UvGKupif9XLR6md5C4-Ju==", "keys": ["extra", "has_more", "log_pb", "min_time", "myself_user_id", "request_users", "status_code", "status_msg", "total"]}
|
||||||
|
{"url": "https://www.tiktok.com/tiktok/ppf/api/eligibility/v2?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=false&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=false&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en", "keys": ["eligibility_list", "log_pb", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/search/suggest/guide/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=false&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&keyword=nhac%20remix%20tiktok&odinId=6884525631502042113&os=mac&priority_region=&referer=®ion=VN&req_source=related_search&screen_height=720&screen_width=1280&search_source=general&tz_name=Etc%2FGMT-7&user_is_login=false&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en", "keys": ["data", "status_code", "status_msg", "log_id"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/global-footer/graphql", "keys": ["data", "extensions"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/v1/web-cookie-privacy/config?locale=en&appId=1988&theme=default&tea=1", "keys": ["statusCode", "body"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/inbox/notice_count/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=false&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&priority_region=&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=false&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en&msToken=Ij-C-T5pLcZDZZK11ertQXncj7-RMUfsCMl_yWkj8kkW3P1HkhKKkVOJxfG5M3CXe52wEJkIqFw-ETg6hNuHK8dgtYOPAJrVdOpI0MjEf3pvecA10K6gMG9ERA0i4W3MYHH_qpruPn90Rwa_tO8R89y7cD0=&X-Bogus=DFSzKwVOKQJANaXRC-2QRw2J46KD&X-Gnarly=M89N6WiMV0w-ShTJgJtlqwoSbcu6aIenkz-mqaakQGuvidVAm94a7CaWI2SZroZb9AIL3-7ckRoHJbHVRrrtAHs1/EQAmaZqkWFZCC-yK4Q5HHdY7tZ6W6nC53UHR3Ni4dSgbyytp05J3TZiscLA4SFjJ/DnT//qGaksLb3HwzkjuveU5N9I-ysatg5X9H22FoZLCf4a8jFHe7b2woBRdT8Pwdb/1aU1dwNbty5PAjyS2a5/-8WOPWcfw4PsUtCRjbKCBQsTNZDf-UZZptNNI3Lsm2NhrlhkZ-rjiGt2ooFRFxnSE31bXO6ljd/3E8BDOijP36ymkZ==", "keys": ["extra", "log_pb", "notice_count", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/ba/business/suite/permission/list/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=false&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&permissionList=001004%2C001005%2C025007%2C025008&priority_region=&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=false&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en&msToken=Ij-C-T5pLcZDZZK11ertQXncj7-RMUfsCMl_yWkj8kkW3P1HkhKKkVOJxfG5M3CXe52wEJkIqFw-ETg6hNuHK8dgtYOPAJrVdOpI0MjEf3pvecA10K6gMG9ERA0i4W3MYHH_qpruPn90Rwa_tO8R89y7cD0=&X-Bogus=DFSzKwVOeAbANaXRC-2QRw2J46QR&X-Gnarly=MCbooWBcYXTQyjBpwtD8N-Syh3Ah2NiGTY8bM2l-G9v9be2buYcjIatGgKSztJYb9ffsFVvWNcd8nIJwFQcU6NfHmLO0X4cmI9-C1q8PQv7xhXIYra2YlfPR95dBqUnUIwZUc2N4-Aip3tDddbH3TJr9RWNb/mkjGklGSQXEq6lmimXeL6NRWOx1AbaL0VQ/j9sZIu1eM8MLgVBUFJcR5R6VFX8S6ImSjsh9KOTI4xHlweGR77Ohc29MS5VCylhhrzhA2wd4sVX09/ytRettIBNrrUz-6rOG/sKTKWYxKhp8i5DgeVOTayRJkVLx9TtSzqlJAd0pMI==", "keys": ["statusCode", "statusMsg", "permissionList"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/global-footer/graphql", "keys": ["data", "extensions"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/ba/business/suite/permission/list/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=false&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&odinId=6884525631502042113&os=mac&permissionList=001004%2C001005%2C025007%2C025008&priority_region=&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=false&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en&msToken=Ij-C-T5pLcZDZZK11ertQXncj7-RMUfsCMl_yWkj8kkW3P1HkhKKkVOJxfG5M3CXe52wEJkIqFw-ETg6hNuHK8dgtYOPAJrVdOpI0MjEf3pvecA10K6gMG9ERA0i4W3MYHH_qpruPn90Rwa_tO8R89y7cD0=&X-Bogus=DFSzKwVOeAbANaXRC-2QRw2J46QR&X-Gnarly=MKkGno46-pW1/VpbE1ptI7xK8c9vYQ3iRBxtaZCty7f8Qve2/D-Eb/5J3J2WYUVkueEEIL2IgoHpqi2PPPxVkniW7vFyGVhM3mSkziTOCXdFiLV8m-gmXKkQCgYoAxWjaqQ-xChlbfb8zLYbK8N3RmJs86ZNDQBtOZ2S/Rg/n6b-amLviB217CdaNUNssXiO/FE9SbNrKSDRt02-9I-kYKl-9k9IZggTgRiyPNxEGuub9YN8rMkVNkeGGmc6P7ZudSzl-ZIdSecg07iTyWlLBQU8FD7uIVBX6V2BcJYl9lNA8QMW7AYf/vex5WV7yx-Q9SXQi-oS9k==", "keys": ["statusCode", "statusMsg", "permissionList"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/prefetch/explore/item_list/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&categoryType=120&channel=tiktok_web&clientABVersions=70508271%2C73720541%2C75294819%2C75638230%2C75650499%2C75843653%2C75844157%2C75853335%2C75861400%2C75892453%2C75895817%2C75896366%2C75897568%2C75906135%2C75986062%2C76024531%2C76043568%2C70405643%2C71057832%2C71200802%2C73004916%2C73171280%2C73208420%2C74008524%2C74276218%2C74413136%2C74844724%2C75330961&cookie_enabled=true&data_collection_enabled=false&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_new_user=false&is_page_visible=true&language=en&odinId=6884525631502042113&os=mac&priority_region=&pullType=1&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=false&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&video_encoding=dash&webcast_language=en&msToken=Ij-C-T5pLcZDZZK11ertQXncj7-RMUfsCMl_yWkj8kkW3P1HkhKKkVOJxfG5M3CXe52wEJkIqFw-ETg6hNuHK8dgtYOPAJrVdOpI0MjEf3pvecA10K6gMG9ERA0i4W3MYHH_qpruPn90Rwa_tO8R89y7cD0=&X-Bogus=DFSzKwVODGzANaXRC-2QRw2J46K6&X-Gnarly=MFvGqBqh3ljsf1G7LD02xpn-IeyyMQf4JqeN516sSAmvj07GoNfqrvgFeXpiqx2fchQ49TfZKcKa9pVUeTNPvTLhs0A4gP-UZ8e858RF5ZQkKvgrniZfCpyR4QcEvZVt6HSk3kPx8bPj-//XArlC88i8fVze4y7ESIXtIvP1fARJsuxZr9fqgyenGxO8a1AYCt0bKgrY4F6c7aX8oR-QadWbY3bflq7pOrGC3N-7DHzOeqP77MQWtyGw7Qwxc2IzmQfmwXBD4C7PUhsovK4FdcFqO3S1f4sT2PzdMzG3UspjTpIjjETGJorTpbjIxsPqqXLfIOj9LZ==", "keys": ["extra", "log_pb", "statusCode", "status_code", "status_msg"]}
|
||||||
|
{"url": "https://www.tiktok.com/api/search/general/preview/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=false&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&keyword=nhac%20remix%20tiktok&odinId=6884525631502042113&os=mac&priority_region=&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=false&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en&msToken=6T21t7jo6fm_ITwUxjlhK5GGInqEsRYFBRZiOyEUPnL1St1w9MD8crbYGJ8wlCk76_UVkpVizHkwuTjbBoww7WFssA3i4uRZzgdi1gvMFfEJhTV50UxIw2gF12nkAlOBndi3jtmlv3XfqHMVLsGk0Rzr0ZU=&X-Bogus=DFSzKwVOqtiANaXRC-2QRw2J46BB&X-Gnarly=MHc7lTViVSeVG3dkuRJQtgAXHUz9/Hwvka4GF43bNkiS0Ol0Doih0uap9tyTElKeSTcHXzppwZ612o5wKSM6sZarWp7RIibhe4sWM8x9FemHt3l0ZL-rO9cI3k0QklEO6XFi8IzWC0u-Vaea/Tq18GzPGftEuvLcRvat/txAY7EnXV2/ExdUN4u2WXiEixBvaFr2rp1dEQY/CoEVs6j0tNrKonpsIGbhLXlTRmYAlPnbKe/cgBSe4FmUqwP8vmoSy2Y95J9AgrMZrss29koNPl2xZ4e2Fi9z/hIhVlSA8o/T0D2TE8ihpEOWRLhaKTQ7Fx4NMS6F6k==", "keys": ["sug_list", "status_code", "status_msg", "rid", "words_query_record", "extra", "log_pb", "user_input_query"]}
|
||||||
|
|
@ -281,9 +281,9 @@ async def proxy_video(
|
||||||
if not os.path.exists(video_path):
|
if not os.path.exists(video_path):
|
||||||
raise Exception("Video file not created")
|
raise Exception("Video file not created")
|
||||||
|
|
||||||
print(f"Downloaded codec: {video_codec} (no transcoding - client will decode)")
|
print(f"Downloaded codec: {video_codec}")
|
||||||
|
|
||||||
# Save to cache directly - NO TRANSCODING
|
# Save to cache directly - client-side player handles all formats
|
||||||
cached_path = save_to_cache(url, video_path)
|
cached_path = save_to_cache(url, video_path)
|
||||||
stats = get_cache_stats()
|
stats = get_cache_stats()
|
||||||
print(f"CACHED: {url[:50]}... ({stats['files']} files, {stats['size_mb']}MB total)")
|
print(f"CACHED: {url[:50]}... ({stats['files']} files, {stats['size_mb']}MB total)")
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,10 @@ from pydantic import BaseModel
|
||||||
from typing import Optional, List
|
from typing import Optional, List
|
||||||
import httpx
|
import httpx
|
||||||
import asyncio
|
import asyncio
|
||||||
|
import time
|
||||||
|
|
||||||
from core.playwright_manager import PlaywrightManager
|
from core.playwright_manager import PlaywrightManager
|
||||||
|
from core.tiktok_api_service import TikTokAPIService
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
|
|
@ -112,7 +114,7 @@ async def get_user_videos(
|
||||||
):
|
):
|
||||||
"""
|
"""
|
||||||
Fetch videos from a TikTok user's profile.
|
Fetch videos from a TikTok user's profile.
|
||||||
Uses Playwright to crawl the user's page for reliable results.
|
Uses direct API calls for speed (~100-500ms), with Playwright fallback.
|
||||||
"""
|
"""
|
||||||
username = username.replace("@", "")
|
username = username.replace("@", "")
|
||||||
|
|
||||||
|
|
@ -123,10 +125,25 @@ async def get_user_videos(
|
||||||
raise HTTPException(status_code=401, detail="Not authenticated")
|
raise HTTPException(status_code=401, detail="Not authenticated")
|
||||||
|
|
||||||
print(f"Fetching videos for @{username}...")
|
print(f"Fetching videos for @{username}...")
|
||||||
|
start_time = time.time()
|
||||||
|
|
||||||
|
# Try fast API first
|
||||||
|
try:
|
||||||
|
videos = await TikTokAPIService.get_user_videos(username, cookies, user_agent, limit)
|
||||||
|
if videos:
|
||||||
|
duration = time.time() - start_time
|
||||||
|
print(f"[API] Got {len(videos)} videos in {duration:.2f}s")
|
||||||
|
return {"username": username, "videos": videos, "count": len(videos), "source": "api", "duration_ms": int(duration * 1000)}
|
||||||
|
except Exception as e:
|
||||||
|
print(f"[API] Failed for {username}: {e}")
|
||||||
|
|
||||||
|
# Fallback to Playwright if API fails or returns empty
|
||||||
|
print(f"[Fallback] Using Playwright for @{username}...")
|
||||||
try:
|
try:
|
||||||
videos = await PlaywrightManager.fetch_user_videos(username, cookies, user_agent, limit)
|
videos = await PlaywrightManager.fetch_user_videos(username, cookies, user_agent, limit)
|
||||||
return {"username": username, "videos": videos, "count": len(videos)}
|
duration = time.time() - start_time
|
||||||
|
print(f"[Playwright] Got {len(videos)} videos in {duration:.2f}s")
|
||||||
|
return {"username": username, "videos": videos, "count": len(videos), "source": "playwright", "duration_ms": int(duration * 1000)}
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Error fetching videos for {username}: {e}")
|
print(f"Error fetching videos for {username}: {e}")
|
||||||
raise HTTPException(status_code=500, detail=str(e))
|
raise HTTPException(status_code=500, detail=str(e))
|
||||||
|
|
@ -140,7 +157,7 @@ async def search_videos(
|
||||||
):
|
):
|
||||||
"""
|
"""
|
||||||
Search for videos by keyword or hashtag.
|
Search for videos by keyword or hashtag.
|
||||||
Uses Playwright to crawl TikTok search results for reliable data.
|
Uses direct API calls for speed (~200-800ms), with Playwright fallback.
|
||||||
"""
|
"""
|
||||||
# Load stored credentials
|
# Load stored credentials
|
||||||
cookies, user_agent = PlaywrightManager.load_stored_credentials()
|
cookies, user_agent = PlaywrightManager.load_stored_credentials()
|
||||||
|
|
@ -149,10 +166,25 @@ async def search_videos(
|
||||||
raise HTTPException(status_code=401, detail="Not authenticated")
|
raise HTTPException(status_code=401, detail="Not authenticated")
|
||||||
|
|
||||||
print(f"Searching for: {query} (limit={limit}, cursor={cursor})...")
|
print(f"Searching for: {query} (limit={limit}, cursor={cursor})...")
|
||||||
|
start_time = time.time()
|
||||||
|
|
||||||
|
# Try fast API first
|
||||||
|
try:
|
||||||
|
videos = await TikTokAPIService.search_videos(query, cookies, user_agent, limit, cursor)
|
||||||
|
if videos:
|
||||||
|
duration = time.time() - start_time
|
||||||
|
print(f"[API] Found {len(videos)} videos in {duration:.2f}s")
|
||||||
|
return {"query": query, "videos": videos, "count": len(videos), "cursor": cursor + len(videos), "source": "api", "duration_ms": int(duration * 1000)}
|
||||||
|
except Exception as e:
|
||||||
|
print(f"[API] Search failed for {query}: {e}")
|
||||||
|
|
||||||
|
# Fallback to Playwright if API fails or returns empty
|
||||||
|
print(f"[Fallback] Using Playwright for search '{query}'...")
|
||||||
try:
|
try:
|
||||||
videos = await PlaywrightManager.search_videos(query, cookies, user_agent, limit, cursor)
|
videos = await PlaywrightManager.search_videos(query, cookies, user_agent, limit, cursor)
|
||||||
return {"query": query, "videos": videos, "count": len(videos), "cursor": cursor + len(videos)}
|
duration = time.time() - start_time
|
||||||
|
print(f"[Playwright] Found {len(videos)} videos in {duration:.2f}s")
|
||||||
|
return {"query": query, "videos": videos, "count": len(videos), "cursor": cursor + len(videos), "source": "playwright", "duration_ms": int(duration * 1000)}
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Error searching for {query}: {e}")
|
print(f"Error searching for {query}: {e}")
|
||||||
raise HTTPException(status_code=500, detail=str(e))
|
raise HTTPException(status_code=500, detail=str(e))
|
||||||
|
|
@ -178,7 +210,6 @@ async def get_suggested_accounts(
|
||||||
|
|
||||||
# Check cache
|
# Check cache
|
||||||
if _suggested_cache["accounts"] and (time.time() - _suggested_cache["updated_at"]) < CACHE_TTL:
|
if _suggested_cache["accounts"] and (time.time() - _suggested_cache["updated_at"]) < CACHE_TTL:
|
||||||
print("Returning cached suggested accounts")
|
|
||||||
return {"accounts": _suggested_cache["accounts"][:limit], "cached": True}
|
return {"accounts": _suggested_cache["accounts"][:limit], "cached": True}
|
||||||
|
|
||||||
# Load stored credentials
|
# Load stored credentials
|
||||||
|
|
@ -198,10 +229,8 @@ async def get_suggested_accounts(
|
||||||
_suggested_cache["updated_at"] = time.time()
|
_suggested_cache["updated_at"] = time.time()
|
||||||
return {"accounts": accounts[:limit], "cached": False}
|
return {"accounts": accounts[:limit], "cached": False}
|
||||||
else:
|
else:
|
||||||
# Fallback: fetch actual profile data with avatars for static list
|
# Just return static accounts directly without API calls - TikTok API is unreliable
|
||||||
print("Dynamic fetch failed, fetching profile data for static accounts...")
|
return {"accounts": get_fallback_accounts()[:limit], "cached": False, "fallback": True}
|
||||||
fallback_list = get_fallback_accounts()[:min(limit, 20)] # Limit to 20 for speed
|
|
||||||
return await fetch_profiles_with_avatars(fallback_list, cookies, user_agent)
|
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Error fetching suggested accounts: {e}")
|
print(f"Error fetching suggested accounts: {e}")
|
||||||
|
|
|
||||||
|
|
@ -17,9 +17,14 @@ from playwright.async_api import async_playwright, Response, Browser, BrowserCon
|
||||||
try:
|
try:
|
||||||
from playwright_stealth import stealth_async
|
from playwright_stealth import stealth_async
|
||||||
except ImportError:
|
except ImportError:
|
||||||
print("WARNING: playwright_stealth not found, disabling stealth mode.")
|
try:
|
||||||
async def stealth_async(page):
|
from playwright_stealth import Stealth
|
||||||
pass
|
async def stealth_async(page):
|
||||||
|
await Stealth().apply_stealth_async(page)
|
||||||
|
except ImportError:
|
||||||
|
print("WARNING: playwright_stealth not found, disabling stealth mode.")
|
||||||
|
async def stealth_async(page):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
COOKIES_FILE = "cookies.json"
|
COOKIES_FILE = "cookies.json"
|
||||||
|
|
@ -43,10 +48,18 @@ class PlaywrightManager:
|
||||||
"--start-maximized"
|
"--start-maximized"
|
||||||
]
|
]
|
||||||
|
|
||||||
DEFAULT_USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
|
DEFAULT_USER_AGENT = "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1"
|
||||||
|
|
||||||
# Use installed Chrome instead of Playwright's Chromium (avoids slow download)
|
# Use installed Chrome instead of Playwright's Chromium (avoids slow download)
|
||||||
CHROME_PATH = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
|
import platform
|
||||||
|
import os
|
||||||
|
|
||||||
|
# Check if running on macOS
|
||||||
|
if platform.system() == "Darwin" and os.path.exists("/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"):
|
||||||
|
CHROME_PATH = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
|
||||||
|
else:
|
||||||
|
# On Linux/Docker, use Playwright's bundled Chromium (None lets Playwright decide)
|
||||||
|
CHROME_PATH = None
|
||||||
|
|
||||||
# VNC login state (class-level to persist across requests)
|
# VNC login state (class-level to persist across requests)
|
||||||
_vnc_playwright = None
|
_vnc_playwright = None
|
||||||
|
|
@ -515,8 +528,26 @@ class PlaywrightManager:
|
||||||
try:
|
try:
|
||||||
data = await response.json()
|
data = await response.json()
|
||||||
|
|
||||||
# TikTok returns videos in "itemList" or "aweme_list"
|
# TikTok returns videos in various nested formats
|
||||||
items = data.get("itemList", []) or data.get("aweme_list", [])
|
items = []
|
||||||
|
|
||||||
|
# Try direct itemList first
|
||||||
|
if data.get("itemList") and isinstance(data["itemList"], list):
|
||||||
|
items = data["itemList"]
|
||||||
|
elif data.get("aweme_list") and isinstance(data["aweme_list"], list):
|
||||||
|
items = data["aweme_list"]
|
||||||
|
# Try nested data structure
|
||||||
|
elif data.get("data"):
|
||||||
|
nested_data = data["data"]
|
||||||
|
if isinstance(nested_data, list):
|
||||||
|
for item in nested_data:
|
||||||
|
if isinstance(item, dict):
|
||||||
|
if "item" in item and isinstance(item["item"], dict):
|
||||||
|
items.append(item["item"])
|
||||||
|
else:
|
||||||
|
items.append(item)
|
||||||
|
elif isinstance(nested_data, dict):
|
||||||
|
items = nested_data.get("itemList", []) or nested_data.get("aweme_list", [])
|
||||||
|
|
||||||
for item in items:
|
for item in items:
|
||||||
video_data = PlaywrightManager._extract_video_data(item)
|
video_data = PlaywrightManager._extract_video_data(item)
|
||||||
|
|
@ -789,13 +820,78 @@ class PlaywrightManager:
|
||||||
|
|
||||||
url = response.url
|
url = response.url
|
||||||
|
|
||||||
# Look for search results API
|
# Log ALL API responses to find the right one
|
||||||
if "search" in url and ("item_list" in url or "video" in url or "general" in url):
|
if "/api/" in url and "tiktok.com" in url:
|
||||||
try:
|
try:
|
||||||
|
content_type = response.headers.get("content-type", "")
|
||||||
|
if "json" in content_type.lower():
|
||||||
|
data = await response.json()
|
||||||
|
log_entry = {"url": url, "keys": list(data.keys()) if isinstance(data, dict) else "not dict"}
|
||||||
|
with open("all_responses.jsonl", "a", encoding="utf-8") as f:
|
||||||
|
f.write(json.dumps(log_entry) + "\n")
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
# Look for search results API - stricter
|
||||||
|
is_search_api = "/api/search/" in url and ("item" in url or "general" in url or "full" in url)
|
||||||
|
|
||||||
|
if is_search_api:
|
||||||
|
try:
|
||||||
|
content_type = response.headers.get("content-type", "")
|
||||||
|
if "json" not in content_type.lower():
|
||||||
|
return
|
||||||
|
|
||||||
data = await response.json()
|
data = await response.json()
|
||||||
|
|
||||||
# Try different response formats
|
# Debug: print the actual structure
|
||||||
items = data.get("itemList", []) or data.get("data", []) or data.get("item_list", [])
|
if data:
|
||||||
|
keys = list(data.keys()) if isinstance(data, dict) else "not a dict"
|
||||||
|
print(f"DEBUG: Search API response keys: {keys} from {url}")
|
||||||
|
|
||||||
|
# DUMP FOR DEBUGGING
|
||||||
|
try:
|
||||||
|
# Append to file or overwrite with list? Overwrite with wrapper for now
|
||||||
|
debug_data = {"url": url, "response": data}
|
||||||
|
with open("debug_search_response.json", "w", encoding="utf-8") as f:
|
||||||
|
json.dump(debug_data, f, indent=2)
|
||||||
|
print("DEBUG: Dumped search response to debug_search_response.json")
|
||||||
|
except Exception as e:
|
||||||
|
print(f"DEBUG: Failed to dump response: {e}")
|
||||||
|
|
||||||
|
# Try different response formats - TikTok nests data in various ways
|
||||||
|
items = []
|
||||||
|
|
||||||
|
# First try direct itemList
|
||||||
|
if data.get("itemList") and isinstance(data["itemList"], list):
|
||||||
|
items = data["itemList"]
|
||||||
|
# Try data field
|
||||||
|
elif data.get("data"):
|
||||||
|
nested_data = data["data"]
|
||||||
|
if isinstance(nested_data, list):
|
||||||
|
# data is a list of items directly
|
||||||
|
for item in nested_data:
|
||||||
|
if isinstance(item, dict):
|
||||||
|
# Check if item has an "item" key (video wrapped)
|
||||||
|
if "item" in item and isinstance(item["item"], dict):
|
||||||
|
items.append(item["item"])
|
||||||
|
# Check for aweme/video wrapper
|
||||||
|
elif "aweme" in item and isinstance(item["aweme"], dict):
|
||||||
|
items.append(item["aweme"])
|
||||||
|
else:
|
||||||
|
items.append(item)
|
||||||
|
elif isinstance(nested_data, dict):
|
||||||
|
# data is an object with items inside
|
||||||
|
items = nested_data.get("itemList", []) or nested_data.get("item_list", []) or \
|
||||||
|
nested_data.get("videos", []) or nested_data.get("aweme_list", [])
|
||||||
|
# Try item_list directly
|
||||||
|
elif data.get("item_list"):
|
||||||
|
items = data["item_list"]
|
||||||
|
# Try aweme_list (mobile API format)
|
||||||
|
elif data.get("aweme_list"):
|
||||||
|
items = data["aweme_list"]
|
||||||
|
|
||||||
|
if items:
|
||||||
|
print(f"DEBUG: Found {len(items)} items, first item keys: {list(items[0].keys()) if items and isinstance(items[0], dict) else 'N/A'}")
|
||||||
|
|
||||||
for item in items:
|
for item in items:
|
||||||
# If we have enough for this specific batch, we don't need more
|
# If we have enough for this specific batch, we don't need more
|
||||||
|
|
@ -814,10 +910,8 @@ class PlaywrightManager:
|
||||||
print(f"DEBUG: Error parsing search API response: {e}")
|
print(f"DEBUG: Error parsing search API response: {e}")
|
||||||
|
|
||||||
async with async_playwright() as p:
|
async with async_playwright() as p:
|
||||||
browser = await p.chromium.launch(
|
browser = await p.firefox.launch(
|
||||||
headless=True,
|
headless=True,
|
||||||
executable_path=PlaywrightManager.CHROME_PATH,
|
|
||||||
args=PlaywrightManager.BROWSER_ARGS
|
|
||||||
)
|
)
|
||||||
|
|
||||||
context = await browser.new_context(user_agent=user_agent)
|
context = await browser.new_context(user_agent=user_agent)
|
||||||
|
|
@ -828,8 +922,9 @@ class PlaywrightManager:
|
||||||
page.on("response", handle_response)
|
page.on("response", handle_response)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# Navigate to TikTok search page
|
|
||||||
search_url = f"https://www.tiktok.com/search/video?q={quote(query)}"
|
# Navigate to TikTok search page - try standard search
|
||||||
|
search_url = f"https://www.tiktok.com/search?q={quote(query)}"
|
||||||
try:
|
try:
|
||||||
await page.goto(search_url, wait_until="domcontentloaded", timeout=15000)
|
await page.goto(search_url, wait_until="domcontentloaded", timeout=15000)
|
||||||
except:
|
except:
|
||||||
|
|
@ -861,6 +956,18 @@ class PlaywrightManager:
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"DEBUG: Error during search: {e}")
|
print(f"DEBUG: Error during search: {e}")
|
||||||
|
|
||||||
|
try:
|
||||||
|
await page.screenshot(path="debug_search_page.png")
|
||||||
|
print("DEBUG: Saved screenshot to debug_search_page.png")
|
||||||
|
|
||||||
|
# Dump HTML
|
||||||
|
html_content = await page.content()
|
||||||
|
with open("debug_search_page.html", "w", encoding="utf-8") as f:
|
||||||
|
f.write(html_content)
|
||||||
|
print("DEBUG: Saved HTML to debug_search_page.html")
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
await browser.close()
|
await browser.close()
|
||||||
|
|
||||||
print(f"DEBUG: Total captured search videos in this batch: {len(captured_videos)}")
|
print(f"DEBUG: Total captured search videos in this batch: {len(captured_videos)}")
|
||||||
|
|
|
||||||
356
backend/core/tiktok_api_service.py
Normal file
356
backend/core/tiktok_api_service.py
Normal file
|
|
@ -0,0 +1,356 @@
|
||||||
|
"""
|
||||||
|
TikTok Direct API Service - Fast API calls without browser automation.
|
||||||
|
|
||||||
|
Replaces Playwright crawling with direct HTTP requests to TikTok's internal APIs.
|
||||||
|
Expected performance: ~100-500ms vs 5-15 seconds with Playwright.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import httpx
|
||||||
|
import asyncio
|
||||||
|
from typing import List, Optional, Dict, Any
|
||||||
|
from urllib.parse import quote
|
||||||
|
|
||||||
|
from core.playwright_manager import PlaywrightManager
|
||||||
|
|
||||||
|
|
||||||
|
class TikTokAPIService:
|
||||||
|
"""
|
||||||
|
Direct TikTok API calls for instant data retrieval.
|
||||||
|
|
||||||
|
Key endpoints used:
|
||||||
|
- /api/user/detail/?uniqueId={username} - Get user profile and secUid
|
||||||
|
- /api/post/item_list/?secUid={secUid}&count={count} - Get user's videos
|
||||||
|
- /api/search/general/full/?keyword={query} - Search videos
|
||||||
|
"""
|
||||||
|
|
||||||
|
BASE_URL = "https://www.tiktok.com"
|
||||||
|
DEFAULT_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"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _build_headers(cookies: List[dict], user_agent: str = None) -> dict:
|
||||||
|
"""Build request headers with cookies and user agent."""
|
||||||
|
cookie_str = "; ".join([f"{c['name']}={c['value']}" for c in cookies])
|
||||||
|
|
||||||
|
return {
|
||||||
|
"User-Agent": user_agent or TikTokAPIService.DEFAULT_USER_AGENT,
|
||||||
|
"Referer": "https://www.tiktok.com/",
|
||||||
|
"Cookie": cookie_str,
|
||||||
|
"Accept": "application/json, text/plain, */*",
|
||||||
|
"Accept-Language": "en-US,en;q=0.9",
|
||||||
|
"sec-ch-ua": '"Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"',
|
||||||
|
"sec-ch-ua-mobile": "?0",
|
||||||
|
"sec-ch-ua-platform": '"Windows"',
|
||||||
|
"sec-fetch-dest": "empty",
|
||||||
|
"sec-fetch-mode": "cors",
|
||||||
|
"sec-fetch-site": "same-origin",
|
||||||
|
}
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _extract_video_data(item: dict) -> Optional[dict]:
|
||||||
|
"""
|
||||||
|
Extract video data from TikTok API response item.
|
||||||
|
Matches the format used by PlaywrightManager._extract_video_data().
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
if not isinstance(item, dict):
|
||||||
|
return None
|
||||||
|
|
||||||
|
video_id = item.get("id") or item.get("aweme_id")
|
||||||
|
|
||||||
|
# Get author info
|
||||||
|
author_data = item.get("author", {})
|
||||||
|
author = author_data.get("uniqueId") or author_data.get("unique_id") or "unknown"
|
||||||
|
|
||||||
|
# Get description
|
||||||
|
desc = item.get("desc") or item.get("description") or ""
|
||||||
|
|
||||||
|
# Check if this is a product/shop video
|
||||||
|
is_shop_video = bool(item.get("products") or item.get("commerce_info") or item.get("poi_info"))
|
||||||
|
|
||||||
|
# Get thumbnail/cover image
|
||||||
|
thumbnail = None
|
||||||
|
video_data = item.get("video", {})
|
||||||
|
|
||||||
|
thumbnail_sources = [
|
||||||
|
video_data.get("cover"),
|
||||||
|
video_data.get("dynamicCover"),
|
||||||
|
video_data.get("originCover"),
|
||||||
|
]
|
||||||
|
for src in thumbnail_sources:
|
||||||
|
if src:
|
||||||
|
thumbnail = src
|
||||||
|
break
|
||||||
|
|
||||||
|
# Get direct CDN URL
|
||||||
|
cdn_url = None
|
||||||
|
cdn_sources = [
|
||||||
|
video_data.get("playAddr"),
|
||||||
|
video_data.get("downloadAddr"),
|
||||||
|
]
|
||||||
|
for src in cdn_sources:
|
||||||
|
if src:
|
||||||
|
cdn_url = src
|
||||||
|
break
|
||||||
|
|
||||||
|
# Video page URL
|
||||||
|
video_url = f"https://www.tiktok.com/@{author}/video/{video_id}"
|
||||||
|
|
||||||
|
# Get stats
|
||||||
|
stats = item.get("stats", {}) or item.get("statistics", {})
|
||||||
|
views = stats.get("playCount") or stats.get("play_count") or 0
|
||||||
|
likes = stats.get("diggCount") or stats.get("digg_count") or 0
|
||||||
|
comments = stats.get("commentCount") or stats.get("comment_count") or 0
|
||||||
|
shares = stats.get("shareCount") or stats.get("share_count") or 0
|
||||||
|
|
||||||
|
if video_id and author:
|
||||||
|
result = {
|
||||||
|
"id": str(video_id),
|
||||||
|
"url": video_url,
|
||||||
|
"author": author,
|
||||||
|
"description": desc[:200] if desc else f"Video by @{author}"
|
||||||
|
}
|
||||||
|
if thumbnail:
|
||||||
|
result["thumbnail"] = thumbnail
|
||||||
|
if cdn_url:
|
||||||
|
result["cdn_url"] = cdn_url
|
||||||
|
if views:
|
||||||
|
result["views"] = views
|
||||||
|
if likes:
|
||||||
|
result["likes"] = likes
|
||||||
|
if comments:
|
||||||
|
result["comments"] = comments
|
||||||
|
if shares:
|
||||||
|
result["shares"] = shares
|
||||||
|
if is_shop_video:
|
||||||
|
result["has_product"] = True
|
||||||
|
return result
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"DEBUG: Error extracting video data: {e}")
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
async def get_user_sec_uid(username: str, cookies: List[dict], user_agent: str = None) -> Optional[str]:
|
||||||
|
"""
|
||||||
|
Get user's secUid from their profile.
|
||||||
|
secUid is required for the video list API.
|
||||||
|
"""
|
||||||
|
headers = TikTokAPIService._build_headers(cookies, user_agent)
|
||||||
|
profile_url = f"{TikTokAPIService.BASE_URL}/api/user/detail/?uniqueId={username}"
|
||||||
|
|
||||||
|
try:
|
||||||
|
async with httpx.AsyncClient(timeout=10.0, follow_redirects=True) as client:
|
||||||
|
response = await client.get(profile_url, headers=headers)
|
||||||
|
|
||||||
|
if response.status_code != 200:
|
||||||
|
print(f"DEBUG: Failed to get user profile, status: {response.status_code}")
|
||||||
|
return None
|
||||||
|
|
||||||
|
data = response.json()
|
||||||
|
user_info = data.get("userInfo", {})
|
||||||
|
user = user_info.get("user", {})
|
||||||
|
sec_uid = user.get("secUid")
|
||||||
|
|
||||||
|
if sec_uid:
|
||||||
|
print(f"DEBUG: Got secUid for @{username}: {sec_uid[:20]}...")
|
||||||
|
return sec_uid
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"DEBUG: Error getting secUid for {username}: {e}")
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
async def get_user_videos(
|
||||||
|
username: str,
|
||||||
|
cookies: List[dict],
|
||||||
|
user_agent: str = None,
|
||||||
|
limit: int = 20,
|
||||||
|
cursor: int = 0
|
||||||
|
) -> List[dict]:
|
||||||
|
"""
|
||||||
|
Fetch videos from a user's profile using direct API call.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
username: TikTok username (without @)
|
||||||
|
cookies: Auth cookies list
|
||||||
|
user_agent: Browser user agent
|
||||||
|
limit: Max videos to return
|
||||||
|
cursor: Pagination cursor for more videos
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
List of video dictionaries
|
||||||
|
"""
|
||||||
|
print(f"DEBUG: [API] Fetching videos for @{username} (limit={limit})...")
|
||||||
|
|
||||||
|
# Step 1: Get secUid
|
||||||
|
sec_uid = await TikTokAPIService.get_user_sec_uid(username, cookies, user_agent)
|
||||||
|
|
||||||
|
if not sec_uid:
|
||||||
|
print(f"DEBUG: [API] Could not get secUid for @{username}")
|
||||||
|
return []
|
||||||
|
|
||||||
|
# Step 2: Fetch video list
|
||||||
|
headers = TikTokAPIService._build_headers(cookies, user_agent)
|
||||||
|
|
||||||
|
# Build video list API URL
|
||||||
|
video_list_url = (
|
||||||
|
f"{TikTokAPIService.BASE_URL}/api/post/item_list/?"
|
||||||
|
f"secUid={quote(sec_uid)}&"
|
||||||
|
f"count={min(limit, 35)}&" # TikTok max per request is ~35
|
||||||
|
f"cursor={cursor}"
|
||||||
|
)
|
||||||
|
|
||||||
|
try:
|
||||||
|
async with httpx.AsyncClient(timeout=15.0, follow_redirects=True) as client:
|
||||||
|
response = await client.get(video_list_url, headers=headers)
|
||||||
|
|
||||||
|
if response.status_code != 200:
|
||||||
|
print(f"DEBUG: [API] Video list failed, status: {response.status_code}")
|
||||||
|
return []
|
||||||
|
|
||||||
|
data = response.json()
|
||||||
|
|
||||||
|
# Extract videos from response
|
||||||
|
items = data.get("itemList", []) or data.get("aweme_list", [])
|
||||||
|
|
||||||
|
videos = []
|
||||||
|
for item in items[:limit]:
|
||||||
|
video_data = TikTokAPIService._extract_video_data(item)
|
||||||
|
if video_data:
|
||||||
|
videos.append(video_data)
|
||||||
|
|
||||||
|
print(f"DEBUG: [API] Successfully fetched {len(videos)} videos for @{username}")
|
||||||
|
return videos
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"DEBUG: [API] Error fetching videos for {username}: {e}")
|
||||||
|
return []
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
async def search_videos(
|
||||||
|
query: str,
|
||||||
|
cookies: List[dict],
|
||||||
|
user_agent: str = None,
|
||||||
|
limit: int = 20,
|
||||||
|
cursor: int = 0
|
||||||
|
) -> List[dict]:
|
||||||
|
"""
|
||||||
|
Search for videos using direct API call.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
query: Search keyword or hashtag
|
||||||
|
cookies: Auth cookies list
|
||||||
|
user_agent: Browser user agent
|
||||||
|
limit: Max videos to return
|
||||||
|
cursor: Pagination offset
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
List of video dictionaries
|
||||||
|
"""
|
||||||
|
print(f"DEBUG: [API] Searching for '{query}' (limit={limit}, cursor={cursor})...")
|
||||||
|
|
||||||
|
headers = TikTokAPIService._build_headers(cookies, user_agent)
|
||||||
|
|
||||||
|
# Build search API URL
|
||||||
|
# TikTok uses different search endpoints, try the main one
|
||||||
|
search_url = (
|
||||||
|
f"{TikTokAPIService.BASE_URL}/api/search/general/full/?"
|
||||||
|
f"keyword={quote(query)}&"
|
||||||
|
f"offset={cursor}&"
|
||||||
|
f"search_source=normal_search&"
|
||||||
|
f"is_filter_search=0&"
|
||||||
|
f"web_search_code=%7B%22tiktok%22%3A%7B%22client_params_x%22%3A%7B%22search_engine%22%3A%7B%22ies_mt_user_live_video_card_use_498%22%3A1%7D%7D%7D%7D"
|
||||||
|
)
|
||||||
|
|
||||||
|
try:
|
||||||
|
async with httpx.AsyncClient(timeout=15.0, follow_redirects=True) as client:
|
||||||
|
response = await client.get(search_url, headers=headers)
|
||||||
|
|
||||||
|
if response.status_code != 200:
|
||||||
|
print(f"DEBUG: [API] Search failed, status: {response.status_code}")
|
||||||
|
# Try alternative search endpoint
|
||||||
|
return await TikTokAPIService._search_videos_alt(query, cookies, user_agent, limit, cursor)
|
||||||
|
|
||||||
|
data = response.json()
|
||||||
|
|
||||||
|
# Search results structure
|
||||||
|
videos = []
|
||||||
|
|
||||||
|
# Try different response formats
|
||||||
|
item_list = data.get("data", [])
|
||||||
|
if not item_list:
|
||||||
|
item_list = data.get("itemList", [])
|
||||||
|
if not item_list:
|
||||||
|
item_list = data.get("item_list", [])
|
||||||
|
|
||||||
|
for item in item_list[:limit]:
|
||||||
|
# Search results may have nested structure
|
||||||
|
video_item = item.get("item", item)
|
||||||
|
video_data = TikTokAPIService._extract_video_data(video_item)
|
||||||
|
if video_data:
|
||||||
|
videos.append(video_data)
|
||||||
|
|
||||||
|
if videos:
|
||||||
|
print(f"DEBUG: [API] Successfully found {len(videos)} videos for '{query}'")
|
||||||
|
return videos
|
||||||
|
else:
|
||||||
|
# Fallback to alternative endpoint
|
||||||
|
return await TikTokAPIService._search_videos_alt(query, cookies, user_agent, limit, cursor)
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"DEBUG: [API] Error searching for {query}: {e}")
|
||||||
|
return await TikTokAPIService._search_videos_alt(query, cookies, user_agent, limit, cursor)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
async def _search_videos_alt(
|
||||||
|
query: str,
|
||||||
|
cookies: List[dict],
|
||||||
|
user_agent: str = None,
|
||||||
|
limit: int = 20,
|
||||||
|
cursor: int = 0
|
||||||
|
) -> List[dict]:
|
||||||
|
"""
|
||||||
|
Alternative search using video-specific endpoint.
|
||||||
|
"""
|
||||||
|
print(f"DEBUG: [API] Trying alternative search endpoint...")
|
||||||
|
|
||||||
|
headers = TikTokAPIService._build_headers(cookies, user_agent)
|
||||||
|
|
||||||
|
# Try video-specific search endpoint
|
||||||
|
search_url = (
|
||||||
|
f"{TikTokAPIService.BASE_URL}/api/search/item/full/?"
|
||||||
|
f"keyword={quote(query)}&"
|
||||||
|
f"offset={cursor}&"
|
||||||
|
f"count={min(limit, 30)}"
|
||||||
|
)
|
||||||
|
|
||||||
|
try:
|
||||||
|
async with httpx.AsyncClient(timeout=15.0, follow_redirects=True) as client:
|
||||||
|
response = await client.get(search_url, headers=headers)
|
||||||
|
|
||||||
|
if response.status_code != 200:
|
||||||
|
print(f"DEBUG: [API] Alt search also failed, status: {response.status_code}")
|
||||||
|
return []
|
||||||
|
|
||||||
|
data = response.json()
|
||||||
|
|
||||||
|
videos = []
|
||||||
|
item_list = data.get("itemList", []) or data.get("item_list", []) or data.get("data", [])
|
||||||
|
|
||||||
|
for item in item_list[:limit]:
|
||||||
|
video_data = TikTokAPIService._extract_video_data(item)
|
||||||
|
if video_data:
|
||||||
|
videos.append(video_data)
|
||||||
|
|
||||||
|
print(f"DEBUG: [API] Alt search found {len(videos)} videos")
|
||||||
|
return videos
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"DEBUG: [API] Alt search error: {e}")
|
||||||
|
return []
|
||||||
|
|
||||||
|
|
||||||
|
# Singleton instance
|
||||||
|
tiktok_api = TikTokAPIService()
|
||||||
BIN
backend/debug_search_page.png
Normal file
BIN
backend/debug_search_page.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 56 KiB |
224
backend/debug_search_response.json
Normal file
224
backend/debug_search_response.json
Normal file
|
|
@ -0,0 +1,224 @@
|
||||||
|
{
|
||||||
|
"url": "https://www.tiktok.com/api/search/general/preview/?WebIdLastTime=1769093917&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=false&device_id=7598200499679430161&device_platform=web_pc&focus_state=true&from_page=search&history_len=1&is_fullscreen=false&is_page_visible=true&keyword=nhac%20remix%20tiktok&odinId=6884525631502042113&os=mac&priority_region=&referer=®ion=VN&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=false&verifyFp=verify_mkpkve4d_fPPCnl5r_r0Lr_46Q3_AsYF_lR14fMWZsZMl&webcast_language=en&msToken=6T21t7jo6fm_ITwUxjlhK5GGInqEsRYFBRZiOyEUPnL1St1w9MD8crbYGJ8wlCk76_UVkpVizHkwuTjbBoww7WFssA3i4uRZzgdi1gvMFfEJhTV50UxIw2gF12nkAlOBndi3jtmlv3XfqHMVLsGk0Rzr0ZU=&X-Bogus=DFSzKwVOqtiANaXRC-2QRw2J46BB&X-Gnarly=MHc7lTViVSeVG3dkuRJQtgAXHUz9/Hwvka4GF43bNkiS0Ol0Doih0uap9tyTElKeSTcHXzppwZ612o5wKSM6sZarWp7RIibhe4sWM8x9FemHt3l0ZL-rO9cI3k0QklEO6XFi8IzWC0u-Vaea/Tq18GzPGftEuvLcRvat/txAY7EnXV2/ExdUN4u2WXiEixBvaFr2rp1dEQY/CoEVs6j0tNrKonpsIGbhLXlTRmYAlPnbKe/cgBSe4FmUqwP8vmoSy2Y95J9AgrMZrss29koNPl2xZ4e2Fi9z/hIhVlSA8o/T0D2TE8ihpEOWRLhaKTQ7Fx4NMS6F6k==",
|
||||||
|
"response": {
|
||||||
|
"sug_list": [
|
||||||
|
{
|
||||||
|
"pos": [
|
||||||
|
{
|
||||||
|
"begin": 0,
|
||||||
|
"end": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"begin": 3,
|
||||||
|
"end": 16
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"content": "nh\u1ea1c remix tiktok hay nh\u1ea5t",
|
||||||
|
"sug_type": "",
|
||||||
|
"word_record": {
|
||||||
|
"group_id": "990422283496914074",
|
||||||
|
"words_position": 0,
|
||||||
|
"words_content": "nh\u1ea1c remix tiktok hay nh\u1ea5t",
|
||||||
|
"words_source": "sug"
|
||||||
|
},
|
||||||
|
"extra_info": {
|
||||||
|
"cut_query": "[\"nhac\",\"remix\",\"tiktok\",\"hay\",\"nh\u1ea5t\"]",
|
||||||
|
"is_history_sug": "0",
|
||||||
|
"is_personalized": "1",
|
||||||
|
"lang": "vi",
|
||||||
|
"recall_reason": "tiktok_index_global_active_7d_query|tiktok_index_experience_decision_query|tiktok_awesome_sug_query|tiktok_orion_query|tiktok_index_active_7d_query|tiktok_orion_search_session|darwin_session_qq_14d_recall"
|
||||||
|
},
|
||||||
|
"rich_sug_sec_pos": null,
|
||||||
|
"highlight_pos": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pos": [
|
||||||
|
{
|
||||||
|
"begin": 0,
|
||||||
|
"end": 16
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"content": "nhac remix tiktok 1 tieng",
|
||||||
|
"sug_type": "",
|
||||||
|
"word_record": {
|
||||||
|
"group_id": "5221655059115435499",
|
||||||
|
"words_position": 1,
|
||||||
|
"words_content": "nhac remix tiktok 1 tieng",
|
||||||
|
"words_source": "sug"
|
||||||
|
},
|
||||||
|
"extra_info": {
|
||||||
|
"cut_query": "[\"nhac\",\"remix\",\"tiktok\",\"1\",\"tieng\"]",
|
||||||
|
"is_history_sug": "0",
|
||||||
|
"is_personalized": "1",
|
||||||
|
"lang": "vi",
|
||||||
|
"recall_reason": "tiktok_index_active_7d_query|darwin_session_qq_14d_recall|tiktok_orion_search_session|tiktok_orion_query|tiktok_index_global_active_7d_query|tiktok_awesome_sug_query"
|
||||||
|
},
|
||||||
|
"rich_sug_sec_pos": null,
|
||||||
|
"highlight_pos": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pos": [
|
||||||
|
{
|
||||||
|
"begin": 0,
|
||||||
|
"end": 16
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"content": "nhac remix tiktok",
|
||||||
|
"sug_type": "",
|
||||||
|
"word_record": {
|
||||||
|
"group_id": "3810839298439660933",
|
||||||
|
"words_position": 2,
|
||||||
|
"words_content": "nhac remix tiktok",
|
||||||
|
"words_source": "sug"
|
||||||
|
},
|
||||||
|
"extra_info": {
|
||||||
|
"cut_query": "[\"nhac\",\"remix\",\"tiktok\"]",
|
||||||
|
"is_personalized": "1",
|
||||||
|
"lang": "vi",
|
||||||
|
"recall_reason": "tiktok_awesome_sug_query|tiktok_index_hot_query|tiktok_orion_query|origin_query|tiktok_orion_search_session|tiktok_index_global_active_7d_query|orion_qse_recall|tiktok_index_active_7d_query|darwin_session_qq_14d_recall"
|
||||||
|
},
|
||||||
|
"rich_sug_sec_pos": null,
|
||||||
|
"highlight_pos": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pos": [
|
||||||
|
{
|
||||||
|
"begin": 0,
|
||||||
|
"end": 9
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"content": "nhac remix",
|
||||||
|
"sug_type": "",
|
||||||
|
"word_record": {
|
||||||
|
"group_id": "7634056513915263483",
|
||||||
|
"words_position": 3,
|
||||||
|
"words_content": "nhac remix",
|
||||||
|
"words_source": "sug"
|
||||||
|
},
|
||||||
|
"extra_info": {
|
||||||
|
"cut_query": "[\"nhac\",\"remix\"]",
|
||||||
|
"is_personalized": "1",
|
||||||
|
"lang": "vi",
|
||||||
|
"recall_reason": "darwin_session_qq_14d_recall|orion_qse_recall|tiktok_orion_search_session"
|
||||||
|
},
|
||||||
|
"rich_sug_sec_pos": null,
|
||||||
|
"highlight_pos": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pos": [
|
||||||
|
{
|
||||||
|
"begin": 0,
|
||||||
|
"end": 16
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"content": "nhac remix tiktok hot",
|
||||||
|
"sug_type": "",
|
||||||
|
"word_record": {
|
||||||
|
"group_id": "8812269330015395678",
|
||||||
|
"words_position": 4,
|
||||||
|
"words_content": "nhac remix tiktok hot",
|
||||||
|
"words_source": "sug"
|
||||||
|
},
|
||||||
|
"extra_info": {
|
||||||
|
"cut_query": "[\"nhac\",\"remix\",\"tiktok\",\"hot\"]",
|
||||||
|
"is_personalized": "1",
|
||||||
|
"lang": "vi",
|
||||||
|
"recall_reason": "tiktok_orion_query|tiktok_orion_search_session|tiktok_index_global_active_7d_query|tiktok_index_active_7d_query"
|
||||||
|
},
|
||||||
|
"rich_sug_sec_pos": null,
|
||||||
|
"highlight_pos": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pos": [
|
||||||
|
{
|
||||||
|
"begin": 0,
|
||||||
|
"end": 16
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"content": "nhac remix tiktok trung quoc",
|
||||||
|
"sug_type": "",
|
||||||
|
"word_record": {
|
||||||
|
"group_id": "1028885005219042853",
|
||||||
|
"words_position": 5,
|
||||||
|
"words_content": "nhac remix tiktok trung quoc",
|
||||||
|
"words_source": "sug"
|
||||||
|
},
|
||||||
|
"extra_info": {
|
||||||
|
"cut_query": "[\"nhac\",\"remix\",\"tiktok\",\"trung\",\"quoc\"]",
|
||||||
|
"is_personalized": "1",
|
||||||
|
"lang": "vi",
|
||||||
|
"recall_reason": "tiktok_orion_query|tiktok_index_global_active_7d_query|tiktok_awesome_sug_query|tiktok_orion_search_session|darwin_session_qq_14d_recall|tiktok_index_active_7d_query"
|
||||||
|
},
|
||||||
|
"rich_sug_sec_pos": null,
|
||||||
|
"highlight_pos": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pos": [
|
||||||
|
{
|
||||||
|
"begin": 0,
|
||||||
|
"end": 16
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"content": "nhac remix tiktok chill",
|
||||||
|
"sug_type": "",
|
||||||
|
"word_record": {
|
||||||
|
"group_id": "6635576608389413344",
|
||||||
|
"words_position": 6,
|
||||||
|
"words_content": "nhac remix tiktok chill",
|
||||||
|
"words_source": "sug"
|
||||||
|
},
|
||||||
|
"extra_info": {
|
||||||
|
"cut_query": "[\"nhac\",\"remix\",\"tiktok\",\"chill\"]",
|
||||||
|
"is_personalized": "1",
|
||||||
|
"lang": "vi",
|
||||||
|
"recall_reason": "tiktok_index_global_active_7d_query|tiktok_index_active_7d_query|darwin_session_qq_14d_recall|tiktok_awesome_sug_query|tiktok_orion_search_session|tiktok_orion_query"
|
||||||
|
},
|
||||||
|
"rich_sug_sec_pos": null,
|
||||||
|
"highlight_pos": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pos": [
|
||||||
|
{
|
||||||
|
"begin": 0,
|
||||||
|
"end": 16
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"content": "nhac remix tiktok trend",
|
||||||
|
"sug_type": "",
|
||||||
|
"word_record": {
|
||||||
|
"group_id": "7722580097107243844",
|
||||||
|
"words_position": 7,
|
||||||
|
"words_content": "nhac remix tiktok trend",
|
||||||
|
"words_source": "sug"
|
||||||
|
},
|
||||||
|
"extra_info": {
|
||||||
|
"cut_query": "[\"nhac\",\"remix\",\"tiktok\",\"trend\"]",
|
||||||
|
"is_personalized": "1",
|
||||||
|
"lang": "vi",
|
||||||
|
"recall_reason": "tiktok_awesome_sug_query|tiktok_index_global_active_7d_query|tiktok_index_active_7d_query|tiktok_orion_query|darwin_session_qq_14d_recall|tiktok_orion_search_session"
|
||||||
|
},
|
||||||
|
"rich_sug_sec_pos": null,
|
||||||
|
"highlight_pos": null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"status_code": 0,
|
||||||
|
"status_msg": "",
|
||||||
|
"rid": "20260512101805F44BF93D662559B8A671",
|
||||||
|
"words_query_record": {
|
||||||
|
"info": "{}",
|
||||||
|
"words_source": "sug",
|
||||||
|
"query_id": ""
|
||||||
|
},
|
||||||
|
"extra": {
|
||||||
|
"now": 1778552285000,
|
||||||
|
"logid": "20260512101805F44BF93D662559B8A671",
|
||||||
|
"fatal_item_ids": [],
|
||||||
|
"search_request_id": "",
|
||||||
|
"api_debug_info": null
|
||||||
|
},
|
||||||
|
"log_pb": {
|
||||||
|
"impr_id": "20260512101805F44BF93D662559B8A671"
|
||||||
|
},
|
||||||
|
"user_input_query": "nhac remix tiktok"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,3 +1,11 @@
|
||||||
|
import sys
|
||||||
|
import asyncio
|
||||||
|
|
||||||
|
# CRITICAL: Set Windows event loop policy BEFORE any other imports
|
||||||
|
# Playwright requires ProactorEventLoop for subprocess support on Windows
|
||||||
|
if sys.platform == "win32":
|
||||||
|
asyncio.set_event_loop_policy(asyncio.WindowsProactorEventLoopPolicy())
|
||||||
|
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
from fastapi.middleware.cors import CORSMiddleware
|
from fastapi.middleware.cors import CORSMiddleware
|
||||||
from fastapi.staticfiles import StaticFiles
|
from fastapi.staticfiles import StaticFiles
|
||||||
|
|
@ -5,12 +13,7 @@ from fastapi.responses import FileResponse
|
||||||
from contextlib import asynccontextmanager
|
from contextlib import asynccontextmanager
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from api.routes import auth, feed, download, following, config, user
|
from api.routes import auth, feed, download, following, config, user
|
||||||
import sys
|
|
||||||
import asyncio
|
|
||||||
|
|
||||||
# Force Proactor on Windows for Playwright
|
|
||||||
if sys.platform == "win32":
|
|
||||||
asyncio.set_event_loop_policy(asyncio.WindowsProactorEventLoopPolicy())
|
|
||||||
|
|
||||||
@asynccontextmanager
|
@asynccontextmanager
|
||||||
async def lifespan(app: FastAPI):
|
async def lifespan(app: FastAPI):
|
||||||
|
|
|
||||||
26
backend/run_windows.py
Normal file
26
backend/run_windows.py
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
"""
|
||||||
|
Windows-compatible startup script for PureStream.
|
||||||
|
Sets ProactorEventLoop policy BEFORE uvicorn imports anything.
|
||||||
|
"""
|
||||||
|
import sys
|
||||||
|
import asyncio
|
||||||
|
|
||||||
|
# CRITICAL: Must be set before importing uvicorn or any async code
|
||||||
|
if sys.platform == "win32":
|
||||||
|
asyncio.set_event_loop_policy(asyncio.WindowsProactorEventLoopPolicy())
|
||||||
|
# Also create the loop early
|
||||||
|
loop = asyncio.new_event_loop()
|
||||||
|
asyncio.set_event_loop(loop)
|
||||||
|
print(f"DEBUG: Forced ProactorEventLoop: {type(loop)}")
|
||||||
|
|
||||||
|
# Now import and run uvicorn
|
||||||
|
import uvicorn
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
uvicorn.run(
|
||||||
|
"main:app",
|
||||||
|
host="0.0.0.0",
|
||||||
|
port=8002,
|
||||||
|
reload=False, # Disabled: reload subprocess loses ProactorEventLoop on Windows
|
||||||
|
loop="asyncio" # Use asyncio, which should now use our ProactorEventLoop
|
||||||
|
)
|
||||||
14
crawl_debug.html
Normal file
14
crawl_debug.html
Normal file
File diff suppressed because one or more lines are too long
7
crawl_debug.md
Normal file
7
crawl_debug.md
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
Top
|
||||||
|
Users
|
||||||
|
Videos
|
||||||
|
LIVE
|
||||||
|
Videos
|
||||||
|
Log in
|
||||||
|
Log in
|
||||||
731
debug_search_page.html
Normal file
731
debug_search_page.html
Normal file
File diff suppressed because one or more lines are too long
BIN
debug_search_page.png
Normal file
BIN
debug_search_page.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 44 KiB |
45
debug_search_response.json
Normal file
45
debug_search_response.json
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
{
|
||||||
|
"url": "https://www.tiktok.com/api/search/suggest/guide/?WebIdLastTime=1758119023&aid=1988&app_language=en&app_name=tiktok_web&browser_language=en-US&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%29&channel=tiktok_web&cookie_enabled=true¤t_placeholder=&data_collection_enabled=true&device_id=7551063687516980743&device_platform=web_mobile&focus_state=true&from_group_id=&from_page=search&history_len=1&history_list_v2=%25255B%25255D&is_fullscreen=false&is_page_visible=true&os=ios&priority_region=VN&referer=®ion=VN&req_source=webapp_search_blank_page&screen_height=720&screen_width=1280&tz_name=Etc%2FGMT-7&user_is_login=true&verifyFp=verify_mjvcbi31_l3mxUEeU_ykis_4x6z_859S_8zEFmNseEnJU&webcast_language=en",
|
||||||
|
"response": {
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"word": "th\u01b0 vi\u1ec7n ph\u00e1p lu\u1eadt",
|
||||||
|
"group_id": "2958109486559469237",
|
||||||
|
"word_type": "19"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"word": "Di\u1ec7p Kh\u00f4ng Sao",
|
||||||
|
"group_id": "1345785342942469512"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"word": "Tr\u1ea7n L\u00ea V\u0129nh \u0110am L\u00ean Ti\u1ebfng Xin L\u1ed7i",
|
||||||
|
"group_id": "7348036468917002150"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"word": "V\u0169 Th\u1ecb Qu\u1ef3nh Anh",
|
||||||
|
"group_id": "5302181352124914202"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"word": "L\u00ea Th\u1ecb Kh\u00e1nh Huy\u1ec1n",
|
||||||
|
"group_id": "7033481489138032483"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"word": "hongthitichcuc",
|
||||||
|
"group_id": "114505717075702429",
|
||||||
|
"word_type": "15"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"word": "runglaimohop",
|
||||||
|
"group_id": "3601732212843243866",
|
||||||
|
"word_type": "19"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"word": "72 ph\u00e9p th\u1ec3 thao",
|
||||||
|
"group_id": "2020036794035663673"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"status_code": 0,
|
||||||
|
"status_msg": "",
|
||||||
|
"log_id": "2026012300212652CB07ABCF014274BC0E"
|
||||||
|
}
|
||||||
|
}
|
||||||
24
docker-compose.dev.yml
Normal file
24
docker-compose.dev.yml
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
# PureStream Development Docker Compose
|
||||||
|
# Uses Dockerfile.dev which COPIES files to avoid Synology Drive filesystem issues
|
||||||
|
|
||||||
|
services:
|
||||||
|
backend:
|
||||||
|
container_name: purestream_dev
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile.dev
|
||||||
|
ports:
|
||||||
|
- "8002:8002"
|
||||||
|
volumes:
|
||||||
|
# Only mount data directories (not code)
|
||||||
|
- purestream_cache:/app/cache
|
||||||
|
- purestream_session:/app/session
|
||||||
|
shm_size: '2gb'
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
purestream_cache:
|
||||||
|
purestream_session:
|
||||||
|
|
||||||
|
# NOTE:
|
||||||
|
# - Frontend is served by backend at http://localhost:8002
|
||||||
|
# - Code changes require rebuild: docker-compose -f docker-compose.dev.yml up --build
|
||||||
21
frontend/package-lock.json
generated
21
frontend/package-lock.json
generated
|
|
@ -12,6 +12,7 @@
|
||||||
"axios": "^1.13.2",
|
"axios": "^1.13.2",
|
||||||
"clsx": "^2.1.1",
|
"clsx": "^2.1.1",
|
||||||
"framer-motion": "^12.23.26",
|
"framer-motion": "^12.23.26",
|
||||||
|
"hls.js": "^1.6.15",
|
||||||
"lucide-react": "^0.561.0",
|
"lucide-react": "^0.561.0",
|
||||||
"react": "^18.3.1",
|
"react": "^18.3.1",
|
||||||
"react-dom": "^18.3.1",
|
"react-dom": "^18.3.1",
|
||||||
|
|
@ -81,6 +82,7 @@
|
||||||
"integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==",
|
"integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/code-frame": "^7.27.1",
|
"@babel/code-frame": "^7.27.1",
|
||||||
"@babel/generator": "^7.28.5",
|
"@babel/generator": "^7.28.5",
|
||||||
|
|
@ -1409,6 +1411,7 @@
|
||||||
"integrity": "sha512-N2clP5pJhB2YnZJ3PIHFk5RkygRX5WO/5f0WC08tp0wd+sv0rsJk3MqWn3CbNmT2J505a5336jaQj4ph1AdMug==",
|
"integrity": "sha512-N2clP5pJhB2YnZJ3PIHFk5RkygRX5WO/5f0WC08tp0wd+sv0rsJk3MqWn3CbNmT2J505a5336jaQj4ph1AdMug==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"undici-types": "~6.21.0"
|
"undici-types": "~6.21.0"
|
||||||
}
|
}
|
||||||
|
|
@ -1426,6 +1429,7 @@
|
||||||
"integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==",
|
"integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==",
|
||||||
"devOptional": true,
|
"devOptional": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/prop-types": "*",
|
"@types/prop-types": "*",
|
||||||
"csstype": "^3.2.2"
|
"csstype": "^3.2.2"
|
||||||
|
|
@ -1486,6 +1490,7 @@
|
||||||
"integrity": "sha512-3xP4XzzDNQOIqBMWogftkwxhg5oMKApqY0BAflmLZiFYHqyhSOxv/cd/zPQLTcCXr4AkaKb25joocY0BD1WC6A==",
|
"integrity": "sha512-3xP4XzzDNQOIqBMWogftkwxhg5oMKApqY0BAflmLZiFYHqyhSOxv/cd/zPQLTcCXr4AkaKb25joocY0BD1WC6A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/scope-manager": "8.51.0",
|
"@typescript-eslint/scope-manager": "8.51.0",
|
||||||
"@typescript-eslint/types": "8.51.0",
|
"@typescript-eslint/types": "8.51.0",
|
||||||
|
|
@ -1737,6 +1742,7 @@
|
||||||
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
|
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
"bin": {
|
"bin": {
|
||||||
"acorn": "bin/acorn"
|
"acorn": "bin/acorn"
|
||||||
},
|
},
|
||||||
|
|
@ -1959,6 +1965,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"baseline-browser-mapping": "^2.9.0",
|
"baseline-browser-mapping": "^2.9.0",
|
||||||
"caniuse-lite": "^1.0.30001759",
|
"caniuse-lite": "^1.0.30001759",
|
||||||
|
|
@ -2364,6 +2371,7 @@
|
||||||
"integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==",
|
"integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@eslint-community/eslint-utils": "^4.8.0",
|
"@eslint-community/eslint-utils": "^4.8.0",
|
||||||
"@eslint-community/regexpp": "^4.12.1",
|
"@eslint-community/regexpp": "^4.12.1",
|
||||||
|
|
@ -2895,6 +2903,12 @@
|
||||||
"node": ">= 0.4"
|
"node": ">= 0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/hls.js": {
|
||||||
|
"version": "1.6.15",
|
||||||
|
"resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.6.15.tgz",
|
||||||
|
"integrity": "sha512-E3a5VwgXimGHwpRGV+WxRTKeSp2DW5DI5MWv34ulL3t5UNmyJWCQ1KmLEHbYzcfThfXG8amBL+fCYPneGHC4VA==",
|
||||||
|
"license": "Apache-2.0"
|
||||||
|
},
|
||||||
"node_modules/ignore": {
|
"node_modules/ignore": {
|
||||||
"version": "5.3.2",
|
"version": "5.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
|
||||||
|
|
@ -3007,6 +3021,7 @@
|
||||||
"integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==",
|
"integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
"bin": {
|
"bin": {
|
||||||
"jiti": "bin/jiti.js"
|
"jiti": "bin/jiti.js"
|
||||||
}
|
}
|
||||||
|
|
@ -3507,6 +3522,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"nanoid": "^3.3.11",
|
"nanoid": "^3.3.11",
|
||||||
"picocolors": "^1.1.1",
|
"picocolors": "^1.1.1",
|
||||||
|
|
@ -3702,6 +3718,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
|
||||||
"integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
|
"integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"loose-envify": "^1.1.0"
|
"loose-envify": "^1.1.0"
|
||||||
},
|
},
|
||||||
|
|
@ -3714,6 +3731,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
|
||||||
"integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
|
"integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"loose-envify": "^1.1.0",
|
"loose-envify": "^1.1.0",
|
||||||
"scheduler": "^0.23.2"
|
"scheduler": "^0.23.2"
|
||||||
|
|
@ -4121,6 +4139,7 @@
|
||||||
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
|
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=12"
|
"node": ">=12"
|
||||||
},
|
},
|
||||||
|
|
@ -4186,6 +4205,7 @@
|
||||||
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
|
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
|
"peer": true,
|
||||||
"bin": {
|
"bin": {
|
||||||
"tsc": "bin/tsc",
|
"tsc": "bin/tsc",
|
||||||
"tsserver": "bin/tsserver"
|
"tsserver": "bin/tsserver"
|
||||||
|
|
@ -4279,6 +4299,7 @@
|
||||||
"integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==",
|
"integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"esbuild": "^0.21.3",
|
"esbuild": "^0.21.3",
|
||||||
"postcss": "^8.4.43",
|
"postcss": "^8.4.43",
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
"axios": "^1.13.2",
|
"axios": "^1.13.2",
|
||||||
"clsx": "^2.1.1",
|
"clsx": "^2.1.1",
|
||||||
"framer-motion": "^12.23.26",
|
"framer-motion": "^12.23.26",
|
||||||
|
"hls.js": "^1.6.15",
|
||||||
"lucide-react": "^0.561.0",
|
"lucide-react": "^0.561.0",
|
||||||
"react": "^18.3.1",
|
"react": "^18.3.1",
|
||||||
"react-dom": "^18.3.1",
|
"react-dom": "^18.3.1",
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,9 @@ import { Feed } from './components/Feed';
|
||||||
const Dashboard = () => {
|
const Dashboard = () => {
|
||||||
return (
|
return (
|
||||||
<div className="h-screen bg-black">
|
<div className="h-screen bg-black">
|
||||||
<Feed />
|
<Routes>
|
||||||
|
<Route path="/" element={<Feed />} />
|
||||||
|
</Routes>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
@ -44,7 +46,7 @@ function App() {
|
||||||
<Route path="/login" element={<Login />} />
|
<Route path="/login" element={<Login />} />
|
||||||
<Route path="/admin" element={<Admin />} />
|
<Route path="/admin" element={<Admin />} />
|
||||||
<Route
|
<Route
|
||||||
path="/"
|
path="/*"
|
||||||
element={
|
element={
|
||||||
<ProtectedRoute>
|
<ProtectedRoute>
|
||||||
<Dashboard />
|
<Dashboard />
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
83
frontend/src/components/Sidebar.tsx
Normal file
83
frontend/src/components/Sidebar.tsx
Normal file
|
|
@ -0,0 +1,83 @@
|
||||||
|
import React from 'react';
|
||||||
|
import { Home, Search, Heart, LogOut } from 'lucide-react';
|
||||||
|
|
||||||
|
interface SidebarProps {
|
||||||
|
activeTab: 'foryou' | 'search' | 'profile';
|
||||||
|
onTabChange: (tab: 'foryou' | 'search' | 'profile') => void;
|
||||||
|
onLogout?: () => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const Sidebar: React.FC<SidebarProps> = ({ activeTab, onTabChange, onLogout }) => {
|
||||||
|
return (
|
||||||
|
<div className="hidden md:flex flex-col w-20 lg:w-64 h-full glass-panel border-r-0 border-r-white/10 z-50 transition-all duration-300">
|
||||||
|
{/* Logo */}
|
||||||
|
<div className="p-6 flex items-center gap-3">
|
||||||
|
<div className="w-8 h-8 rounded-xl bg-gradient-to-tr from-violet-500 to-fuchsia-500 flex-shrink-0" />
|
||||||
|
<h1 className="text-xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-white to-gray-400 hidden lg:block">
|
||||||
|
PureStream
|
||||||
|
</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Nav Items */}
|
||||||
|
<div className="flex-1 flex flex-col gap-2 px-3 py-4">
|
||||||
|
<NavItem
|
||||||
|
icon={<Home size={24} />}
|
||||||
|
label="For You"
|
||||||
|
isActive={activeTab === 'foryou'}
|
||||||
|
onClick={() => onTabChange('foryou')}
|
||||||
|
/>
|
||||||
|
<NavItem
|
||||||
|
icon={<Search size={24} />}
|
||||||
|
label="Search"
|
||||||
|
isActive={activeTab === 'search'}
|
||||||
|
onClick={() => onTabChange('search')}
|
||||||
|
/>
|
||||||
|
{/* Placeholder for future features */}
|
||||||
|
<NavItem
|
||||||
|
icon={<Heart size={24} />}
|
||||||
|
label="Likes"
|
||||||
|
isActive={false}
|
||||||
|
onClick={() => { }}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Bottom Actions */}
|
||||||
|
<div className="p-4 border-t border-white/10 space-y-2">
|
||||||
|
<button
|
||||||
|
onClick={onLogout}
|
||||||
|
className="flex items-center gap-4 w-full p-3 rounded-xl text-gray-400 hover:bg-white/5 hover:text-red-400 transition-all group"
|
||||||
|
>
|
||||||
|
<LogOut size={22} className="group-hover:scale-110 transition-transform" />
|
||||||
|
<span className="hidden lg:block font-medium">Log Out</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
interface NavItemProps {
|
||||||
|
icon: React.ReactNode;
|
||||||
|
label: string;
|
||||||
|
isActive: boolean;
|
||||||
|
onClick: () => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
const NavItem: React.FC<NavItemProps> = ({ icon, label, isActive, onClick }) => {
|
||||||
|
return (
|
||||||
|
<button
|
||||||
|
onClick={onClick}
|
||||||
|
className={`flex items-center gap-4 w-full p-3 rounded-xl transition-all duration-200 group
|
||||||
|
${isActive
|
||||||
|
? 'bg-white/10 text-white shadow-lg shadow-black/20'
|
||||||
|
: 'text-gray-400 hover:bg-white/5 hover:text-white'
|
||||||
|
}`}
|
||||||
|
>
|
||||||
|
<div className={`${isActive ? 'scale-110' : 'group-hover:scale-110'} transition-transform duration-200`}>
|
||||||
|
{icon}
|
||||||
|
</div>
|
||||||
|
<span className={`hidden lg:block font-medium ${isActive ? 'text-white' : ''}`}>
|
||||||
|
{label}
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
);
|
||||||
|
};
|
||||||
38
frontend/src/components/SkeletonFeed.tsx
Normal file
38
frontend/src/components/SkeletonFeed.tsx
Normal file
|
|
@ -0,0 +1,38 @@
|
||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
export const SkeletonFeed: React.FC = () => {
|
||||||
|
return (
|
||||||
|
<div className="h-full w-full bg-[#0f0f15] relative overflow-hidden flex items-center justify-center">
|
||||||
|
{/* Main Video Area Skeleton */}
|
||||||
|
<div className="absolute inset-0 flex items-center justify-center">
|
||||||
|
<div className="w-16 h-16 rounded-full skeleton-pulse opacity-50"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Right Sidebar Action Buttons */}
|
||||||
|
<div className="absolute right-4 bottom-24 flex flex-col items-center gap-6 z-10">
|
||||||
|
{[1, 2, 3, 4].map((_, i) => (
|
||||||
|
<div key={i} className="flex flex-col items-center gap-1">
|
||||||
|
<div className="w-12 h-12 rounded-full skeleton-pulse bg-white/10" />
|
||||||
|
<div className="w-8 h-3 rounded-md skeleton-pulse bg-white/10" />
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Bottom Info Area */}
|
||||||
|
<div className="absolute bottom-6 left-4 right-20 z-10 space-y-3">
|
||||||
|
<div className="w-32 h-5 rounded-md skeleton-pulse bg-white/10" />
|
||||||
|
<div className="w-64 h-4 rounded-md skeleton-pulse bg-white/10" />
|
||||||
|
<div className="w-48 h-4 rounded-md skeleton-pulse bg-white/10 opacity-70" />
|
||||||
|
|
||||||
|
{/* Music Skeleton */}
|
||||||
|
<div className="flex items-center gap-2 mt-2">
|
||||||
|
<div className="w-6 h-6 rounded-full skeleton-pulse bg-white/10" />
|
||||||
|
<div className="w-40 h-4 rounded-md skeleton-pulse bg-white/10" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Overlay Gradient */}
|
||||||
|
<div className="absolute inset-0 bg-gradient-to-b from-transparent via-transparent to-black/60 pointer-events-none" />
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
61
frontend/src/components/UserCard.tsx
Normal file
61
frontend/src/components/UserCard.tsx
Normal file
|
|
@ -0,0 +1,61 @@
|
||||||
|
|
||||||
|
import React, { useState } from 'react';
|
||||||
|
import type { UserProfile } from '../types';
|
||||||
|
|
||||||
|
interface UserCardProps {
|
||||||
|
user: UserProfile;
|
||||||
|
}
|
||||||
|
|
||||||
|
const UserCard: React.FC<UserCardProps> = ({ user }) => {
|
||||||
|
const [isExpanded, setIsExpanded] = useState(false);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="bg-white dark:bg-gray-800 shadow-md rounded-lg p-4 mb-4">
|
||||||
|
<div className="flex items-center justify-between">
|
||||||
|
<div className="flex items-center">
|
||||||
|
<img
|
||||||
|
src={user.avatar}
|
||||||
|
alt={user.username}
|
||||||
|
className="w-16 h-16 rounded-full mr-4"
|
||||||
|
/>
|
||||||
|
<div>
|
||||||
|
<h2 className="text-xl font-bold">{user.nickname}</h2>
|
||||||
|
<p className="text-gray-500 dark:text-gray-400">@{user.username}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<button
|
||||||
|
onClick={() => setIsExpanded(!isExpanded)}
|
||||||
|
className="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded"
|
||||||
|
>
|
||||||
|
{isExpanded ? 'Hide Stats' : 'Show Stats'}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
{isExpanded && (
|
||||||
|
<div className="mt-4">
|
||||||
|
<div className="grid grid-cols-3 gap-4 text-center">
|
||||||
|
<div>
|
||||||
|
<p className="font-bold text-lg">{user.followers?.toLocaleString()}</p>
|
||||||
|
<p className="text-gray-500 dark:text-gray-400">Followers</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<p className="font-bold text-lg">{user.following?.toLocaleString()}</p>
|
||||||
|
<p className="text-gray-500 dark:text-gray-400">Following</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<p className="font-bold text-lg">{user.likes?.toLocaleString()}</p>
|
||||||
|
<p className="text-gray-500 dark:text-gray-400">Likes</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{user.bio && (
|
||||||
|
<div className="mt-4">
|
||||||
|
<h3 className="font-bold">Bio</h3>
|
||||||
|
<p className="text-gray-600 dark:text-gray-300">{user.bio}</p>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default UserCard;
|
||||||
|
|
@ -4,12 +4,7 @@ import type { Video } from '../types';
|
||||||
import { API_BASE_URL } from '../config';
|
import { API_BASE_URL } from '../config';
|
||||||
import { videoCache } from '../utils/videoCache';
|
import { videoCache } from '../utils/videoCache';
|
||||||
|
|
||||||
// Check if browser supports HEVC codec (Safari, Chrome 107+, Edge)
|
|
||||||
const supportsHEVC = (): boolean => {
|
|
||||||
if (typeof MediaSource === 'undefined') return false;
|
|
||||||
return MediaSource.isTypeSupported('video/mp4; codecs="hvc1"') ||
|
|
||||||
MediaSource.isTypeSupported('video/mp4; codecs="hev1"');
|
|
||||||
};
|
|
||||||
|
|
||||||
interface HeartParticle {
|
interface HeartParticle {
|
||||||
id: number;
|
id: number;
|
||||||
|
|
@ -55,7 +50,7 @@ export const VideoPlayer: React.FC<VideoPlayerProps> = ({
|
||||||
const [cachedUrl, setCachedUrl] = useState<string | null>(null);
|
const [cachedUrl, setCachedUrl] = useState<string | null>(null);
|
||||||
const [codecError, setCodecError] = useState(false); // True if video codec not supported
|
const [codecError, setCodecError] = useState(false); // True if video codec not supported
|
||||||
const lastTapRef = useRef<number>(0);
|
const lastTapRef = useRef<number>(0);
|
||||||
const browserSupportsHEVC = useRef(supportsHEVC());
|
|
||||||
|
|
||||||
const fullProxyUrl = `${API_BASE_URL}/feed/proxy?url=${encodeURIComponent(video.url)}`;
|
const fullProxyUrl = `${API_BASE_URL}/feed/proxy?url=${encodeURIComponent(video.url)}`;
|
||||||
const thinProxyUrl = video.cdn_url ? `${API_BASE_URL}/feed/thin-proxy?cdn_url=${encodeURIComponent(video.cdn_url)}` : null;
|
const thinProxyUrl = video.cdn_url ? `${API_BASE_URL}/feed/thin-proxy?cdn_url=${encodeURIComponent(video.cdn_url)}` : null;
|
||||||
|
|
@ -154,15 +149,21 @@ export const VideoPlayer: React.FC<VideoPlayerProps> = ({
|
||||||
const videoEl = e.target as HTMLVideoElement;
|
const videoEl = e.target as HTMLVideoElement;
|
||||||
const error = videoEl?.error;
|
const error = videoEl?.error;
|
||||||
|
|
||||||
// Check if this is a codec/decode error (MEDIA_ERR_DECODE = 3)
|
// Check if this is a codec/decode error (MEDIA_ERR_DECODE = 3, MEDIA_ERR_SRC_NOT_SUPPORTED = 4)
|
||||||
if (error?.code === 3 || error?.code === 4) {
|
if (error?.code === 3 || error?.code === 4) {
|
||||||
console.log(`Codec error detected (code ${error.code}):`, error.message);
|
console.log(`Codec error detected (code ${error.code}):`, error.message);
|
||||||
// Only show codec error if browser doesn't support HEVC
|
|
||||||
if (!browserSupportsHEVC.current) {
|
// Always fall back to full proxy which will transcode to H.264
|
||||||
setCodecError(true);
|
if (!useFallback) {
|
||||||
setIsLoading(false);
|
console.log('Codec not supported, falling back to full proxy (will transcode to H.264)...');
|
||||||
|
setUseFallback(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If even full proxy failed, show error
|
||||||
|
setCodecError(true);
|
||||||
|
setIsLoading(false);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (thinProxyUrl && !useFallback) {
|
if (thinProxyUrl && !useFallback) {
|
||||||
|
|
@ -482,9 +483,9 @@ export const VideoPlayer: React.FC<VideoPlayerProps> = ({
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Side Controls - Only show when video is paused */}
|
{/* Side Controls - Always visible on hover or when paused */}
|
||||||
<div
|
<div
|
||||||
className={`absolute bottom-36 right-4 flex flex-col gap-3 transition-all duration-300 transform ${isPaused && showSidebar ? 'translate-x-0 opacity-100' : 'translate-x-[200%] opacity-0'
|
className={`absolute bottom-36 right-4 flex flex-col gap-3 transition-all duration-300 transform ${showControls || isPaused ? 'translate-x-0 opacity-100' : 'translate-x-2 opacity-0'
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
{/* Follow Button */}
|
{/* Follow Button */}
|
||||||
|
|
@ -505,6 +506,7 @@ export const VideoPlayer: React.FC<VideoPlayerProps> = ({
|
||||||
<a
|
<a
|
||||||
href={downloadUrl}
|
href={downloadUrl}
|
||||||
download
|
download
|
||||||
|
onClick={(e) => e.stopPropagation()}
|
||||||
className="w-12 h-12 flex items-center justify-center bg-white/10 hover:bg-white/20 backdrop-blur-xl border border-white/10 rounded-full text-white transition-all"
|
className="w-12 h-12 flex items-center justify-center bg-white/10 hover:bg-white/20 backdrop-blur-xl border border-white/10 rounded-full text-white transition-all"
|
||||||
title="Download"
|
title="Download"
|
||||||
>
|
>
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1 @@
|
||||||
export const API_BASE_URL = import.meta.env.PROD
|
export const API_BASE_URL = '/api';
|
||||||
? '/api'
|
|
||||||
: (import.meta.env.VITE_API_URL || 'http://localhost:8002/api');
|
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,30 @@
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
height: 100dvh;
|
height: 100dvh;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
@apply bg-[#0f0f15] text-white antialiased;
|
||||||
|
color-scheme: dark;
|
||||||
|
font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@layer components {
|
||||||
|
.glass-panel {
|
||||||
|
@apply bg-white/5 backdrop-blur-xl border border-white/10;
|
||||||
|
}
|
||||||
|
|
||||||
|
.glass-panel-hover {
|
||||||
|
@apply hover:bg-white/10 transition-colors duration-200;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-primary {
|
||||||
|
@apply bg-gradient-to-r from-violet-600 to-indigo-600 hover:from-violet-500 hover:to-indigo-500 text-white font-medium px-4 py-2 rounded-xl transition-all active:scale-95 shadow-lg shadow-indigo-500/20;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-ghost {
|
||||||
|
@apply hover:bg-white/10 text-gray-300 hover:text-white px-4 py-2 rounded-xl transition-all active:scale-95;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@layer utilities {
|
@layer utilities {
|
||||||
|
|
@ -33,33 +57,17 @@
|
||||||
display: none;
|
display: none;
|
||||||
/* Chrome, Safari and Opera */
|
/* Chrome, Safari and Opera */
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
.text-shadow {
|
||||||
@layer utilities {
|
text-shadow: 0 2px 4px rgba(0,0,0,0.5);
|
||||||
.scrollbar-hide::-webkit-scrollbar {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.scrollbar-hide {
|
|
||||||
-ms-overflow-style: none;
|
|
||||||
scrollbar-width: none;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Animations */
|
||||||
@keyframes shake {
|
@keyframes shake {
|
||||||
|
0%, 100% { transform: translateX(0); }
|
||||||
0%,
|
25% { transform: translateX(-4px); }
|
||||||
100% {
|
75% { transform: translateX(4px); }
|
||||||
transform: translateX(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
25% {
|
|
||||||
transform: translateX(-4px);
|
|
||||||
}
|
|
||||||
|
|
||||||
75% {
|
|
||||||
transform: translateX(4px);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.animate-shake {
|
.animate-shake {
|
||||||
|
|
@ -67,34 +75,25 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes heart-float {
|
@keyframes heart-float {
|
||||||
0% {
|
0% { opacity: 1; transform: scale(0) rotate(-15deg); }
|
||||||
opacity: 1;
|
25% { opacity: 1; transform: scale(1.2) rotate(10deg); }
|
||||||
transform: scale(0) rotate(-15deg);
|
50% { opacity: 0.8; transform: scale(1) translateY(-30px) rotate(-5deg); }
|
||||||
}
|
100% { opacity: 0; transform: scale(0.6) translateY(-80px) rotate(15deg); }
|
||||||
|
|
||||||
25% {
|
|
||||||
opacity: 1;
|
|
||||||
transform: scale(1.2) rotate(10deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
50% {
|
|
||||||
opacity: 0.8;
|
|
||||||
transform: scale(1) translateY(-30px) rotate(-5deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
100% {
|
|
||||||
opacity: 0;
|
|
||||||
transform: scale(0.6) translateY(-80px) rotate(15deg);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.animate-heart-float {
|
.animate-heart-float {
|
||||||
animation: heart-float 1s ease-out forwards;
|
animation: heart-float 1s ease-out forwards;
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
@keyframes shimmer {
|
||||||
@apply bg-black antialiased;
|
0% { background-position: -200% 0; }
|
||||||
color-scheme: dark;
|
100% { background-position: 200% 0; }
|
||||||
|
}
|
||||||
|
|
||||||
|
.skeleton-pulse {
|
||||||
|
background: linear-gradient(90deg, rgba(255,255,255,0.03) 25%, rgba(255,255,255,0.08) 50%, rgba(255,255,255,0.03) 75%);
|
||||||
|
background-size: 200% 100%;
|
||||||
|
animation: shimmer 1.5s infinite;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artplayer-app {
|
.artplayer-app {
|
||||||
|
|
|
||||||
|
|
@ -85,7 +85,8 @@ class VideoPrefetcher {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const API_BASE_URL = 'http://localhost:8002/api'; // Hardcoded or imported from config
|
const API_BASE_URL_CONFIG = (await import('../config')).API_BASE_URL;
|
||||||
|
const API_BASE_URL = API_BASE_URL_CONFIG || 'http://localhost:8002/api'; // Fallback if import fails
|
||||||
const fullProxyUrl = `${API_BASE_URL}/feed/proxy?url=${encodeURIComponent(video.url)}`;
|
const fullProxyUrl = `${API_BASE_URL}/feed/proxy?url=${encodeURIComponent(video.url)}`;
|
||||||
// Use thin proxy if available for better performance
|
// Use thin proxy if available for better performance
|
||||||
const thinProxyUrl = video.cdn_url ? `${API_BASE_URL}/feed/thin-proxy?cdn_url=${encodeURIComponent(video.cdn_url)}` : null;
|
const thinProxyUrl = video.cdn_url ? `${API_BASE_URL}/feed/thin-proxy?cdn_url=${encodeURIComponent(video.cdn_url)}` : null;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,17 @@
|
||||||
import { defineConfig } from 'vite'
|
import { defineConfig } from 'vite'
|
||||||
import react from '@vitejs/plugin-react'
|
import react from '@vitejs/plugin-react'
|
||||||
|
|
||||||
// https://vite.dev/config/
|
// https://vitejs.dev/config/
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins: [react()],
|
plugins: [react()],
|
||||||
|
server: {
|
||||||
|
host: '0.0.0.0', // Allow access from outside the container
|
||||||
|
port: 5173,
|
||||||
|
proxy: {
|
||||||
|
'/api': {
|
||||||
|
target: 'http://localhost:8002',
|
||||||
|
changeOrigin: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
|
||||||
60
manage_app.ps1
Normal file
60
manage_app.ps1
Normal file
|
|
@ -0,0 +1,60 @@
|
||||||
|
param (
|
||||||
|
[string]$Action = "start"
|
||||||
|
)
|
||||||
|
|
||||||
|
$BackendPort = 8002
|
||||||
|
$FrontendPort = 5173
|
||||||
|
$RootPath = Get-Location
|
||||||
|
$BackendDir = Join-Path $RootPath "backend"
|
||||||
|
$FrontendDir = Join-Path $RootPath "frontend"
|
||||||
|
|
||||||
|
function Stop-App {
|
||||||
|
Write-Host "Stopping PureStream..." -ForegroundColor Yellow
|
||||||
|
$ports = @($BackendPort, $FrontendPort)
|
||||||
|
foreach ($port in $ports) {
|
||||||
|
$processes = Get-NetTCPConnection -LocalPort $port -ErrorAction SilentlyContinue | Select-Object -ExpandProperty OwningProcess -Unique
|
||||||
|
if ($processes) {
|
||||||
|
foreach ($pidVal in $processes) {
|
||||||
|
Write-Host "Killing process on port $port (PID: $pidVal)" -ForegroundColor Red
|
||||||
|
Stop-Process -Id $pidVal -Force -ErrorAction SilentlyContinue
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Write-Host "No process found on port $port" -ForegroundColor Gray
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Write-Host "Stopped." -ForegroundColor Green
|
||||||
|
}
|
||||||
|
|
||||||
|
function Start-App {
|
||||||
|
# Check if ports are already in use
|
||||||
|
$backendActive = Get-NetTCPConnection -LocalPort $BackendPort -ErrorAction SilentlyContinue
|
||||||
|
$frontendActive = Get-NetTCPConnection -LocalPort $FrontendPort -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
|
if ($backendActive -or $frontendActive) {
|
||||||
|
Write-Host "Ports are already in use. Stopping existing instances..." -ForegroundColor Yellow
|
||||||
|
Stop-App
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "Starting PureStream Backend..." -ForegroundColor Cyan
|
||||||
|
# Launch in a new CMD window so user can see logs and it stays open (/k)
|
||||||
|
Start-Process "cmd.exe" -ArgumentList "/k title PureStream Backend & cd /d `"$BackendDir`" & python run_windows.py" -WindowStyle Normal
|
||||||
|
|
||||||
|
Write-Host "Starting PureStream Frontend..." -ForegroundColor Cyan
|
||||||
|
# Launch in a new CMD window
|
||||||
|
Start-Process "cmd.exe" -ArgumentList "/k title PureStream Frontend & cd /d `"$FrontendDir`" & npm run dev" -WindowStyle Normal
|
||||||
|
|
||||||
|
Write-Host "PureStream is starting!" -ForegroundColor Green
|
||||||
|
Write-Host "Backend API: http://localhost:$BackendPort"
|
||||||
|
Write-Host "Frontend UI: http://localhost:$FrontendPort"
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ($Action.ToLower()) {
|
||||||
|
"stop" { Stop-App }
|
||||||
|
"start" { Start-App }
|
||||||
|
"restart" { Stop-App; Start-App }
|
||||||
|
default {
|
||||||
|
Write-Host "Usage: .\manage_app.ps1 [start|stop|restart]" -ForegroundColor Red
|
||||||
|
Write-Host "Defaulting to 'start'..." -ForegroundColor Yellow
|
||||||
|
Start-App
|
||||||
|
}
|
||||||
|
}
|
||||||
2
run_debug_search.ps1
Normal file
2
run_debug_search.ps1
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
$env:PYTHONPATH = "c:\Users\Admin\Downloads\kv-tiktok\backend"
|
||||||
|
& "c:\Users\Admin\Downloads\kv-tiktok\.venv\Scripts\python.exe" tests/debug_search.py
|
||||||
6949
ssr_data.json
Normal file
6949
ssr_data.json
Normal file
File diff suppressed because it is too large
Load diff
3
start_app.bat
Normal file
3
start_app.bat
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
@echo off
|
||||||
|
cd /d "%~dp0"
|
||||||
|
powershell -ExecutionPolicy Bypass -File manage_app.ps1 start
|
||||||
4
stop_app.bat
Normal file
4
stop_app.bat
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
@echo off
|
||||||
|
cd /d "%~dp0"
|
||||||
|
powershell -ExecutionPolicy Bypass -File manage_app.ps1 stop
|
||||||
|
pause
|
||||||
12
test_stealth.py
Normal file
12
test_stealth.py
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
import sys
|
||||||
|
print(f"Python: {sys.executable}")
|
||||||
|
print(f"Path: {sys.path}")
|
||||||
|
try:
|
||||||
|
import playwright_stealth
|
||||||
|
print(f"Module: {playwright_stealth}")
|
||||||
|
from playwright_stealth import stealth_async
|
||||||
|
print("Import successful!")
|
||||||
|
except ImportError as e:
|
||||||
|
print(f"Import failed: {e}")
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error: {e}")
|
||||||
41
tests/debug_search.py
Normal file
41
tests/debug_search.py
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
import json
|
||||||
|
import urllib.request
|
||||||
|
import urllib.parse
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
def debug_search():
|
||||||
|
base_url = "http://localhost:8002/api/user/search"
|
||||||
|
query = "hot trend"
|
||||||
|
params = urllib.parse.urlencode({"query": query, "limit": 10})
|
||||||
|
url = f"{base_url}?{params}"
|
||||||
|
|
||||||
|
print(f"Testing search for: '{query}'")
|
||||||
|
print(f"URL: {url}")
|
||||||
|
|
||||||
|
try:
|
||||||
|
req = urllib.request.Request(url)
|
||||||
|
with urllib.request.urlopen(req, timeout=60) as response:
|
||||||
|
status_code = response.getcode()
|
||||||
|
print(f"Status Code: {status_code}")
|
||||||
|
|
||||||
|
if status_code == 200:
|
||||||
|
data = json.loads(response.read().decode('utf-8'))
|
||||||
|
print(f"Source: {data.get('source')}")
|
||||||
|
print(f"Count: {data.get('count')}")
|
||||||
|
videos = data.get("videos", [])
|
||||||
|
if not videos:
|
||||||
|
print("ERROR: No videos returned!")
|
||||||
|
else:
|
||||||
|
print(f"First video: {videos[0].get('id')} - {videos[0].get('desc', 'No desc')}")
|
||||||
|
else:
|
||||||
|
print(f"Error: Status {status_code}")
|
||||||
|
|
||||||
|
except urllib.error.HTTPError as e:
|
||||||
|
print(f"HTTP Error: {e.code} - {e.reason}")
|
||||||
|
print(e.read().decode('utf-8'))
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Request failed: {e}")
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
debug_search()
|
||||||
29
tests/inspect_html.py
Normal file
29
tests/inspect_html.py
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
from bs4 import BeautifulSoup
|
||||||
|
import re
|
||||||
|
|
||||||
|
with open("debug_search_page.html", "r", encoding="utf-8") as f:
|
||||||
|
html = f.read()
|
||||||
|
|
||||||
|
soup = BeautifulSoup(html, "html.parser")
|
||||||
|
|
||||||
|
# Inspect text occurrences
|
||||||
|
print("\n--- Searching for 'trend' text ---")
|
||||||
|
text_matches = soup.find_all(string=re.compile("trend", re.IGNORECASE))
|
||||||
|
print(f"Found {len(text_matches)} text matches.")
|
||||||
|
|
||||||
|
unique_parents = set()
|
||||||
|
for text in text_matches:
|
||||||
|
parent = text.parent
|
||||||
|
if parent and parent.name != "script" and parent.name != "style":
|
||||||
|
# Get up to 3 levels of parents
|
||||||
|
chain = []
|
||||||
|
curr = parent
|
||||||
|
for _ in range(3):
|
||||||
|
if curr:
|
||||||
|
chain.append(f"<{curr.name} class='{'.'.join(curr.get('class', []))}'>")
|
||||||
|
curr = curr.parent
|
||||||
|
unique_parents.add(" -> ".join(chain))
|
||||||
|
|
||||||
|
for p in list(unique_parents)[:10]:
|
||||||
|
print(p)
|
||||||
|
|
||||||
45
tests/parse_ssr_data.py
Normal file
45
tests/parse_ssr_data.py
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
from bs4 import BeautifulSoup
|
||||||
|
import json
|
||||||
|
|
||||||
|
with open("debug_search_page.html", "r", encoding="utf-8") as f:
|
||||||
|
html = f.read()
|
||||||
|
|
||||||
|
soup = BeautifulSoup(html, "html.parser")
|
||||||
|
script = soup.find("script", id="__UNIVERSAL_DATA_FOR_REHYDRATION__")
|
||||||
|
|
||||||
|
if script:
|
||||||
|
try:
|
||||||
|
data = json.loads(script.string)
|
||||||
|
print("Found SSR Data!")
|
||||||
|
|
||||||
|
# Save pretty printed
|
||||||
|
with open("ssr_data.json", "w", encoding="utf-8") as f:
|
||||||
|
json.dump(data, f, indent=2)
|
||||||
|
|
||||||
|
# Search for video list
|
||||||
|
# Look in __DEFAULT_SCOPE__ -> webapp.search-video -> searchVideoList (guessing keys)
|
||||||
|
# or just traverse and print keys
|
||||||
|
|
||||||
|
def find_keys(obj, target_key, path=""):
|
||||||
|
if isinstance(obj, dict):
|
||||||
|
for k, v in obj.items():
|
||||||
|
current_path = f"{path}.{k}"
|
||||||
|
if target_key.lower() in k.lower():
|
||||||
|
print(f"Found key '{k}' at {current_path}")
|
||||||
|
find_keys(v, target_key, current_path)
|
||||||
|
elif isinstance(obj, list):
|
||||||
|
for i, item in enumerate(obj):
|
||||||
|
find_keys(item, target_key, f"{path}[{i}]")
|
||||||
|
|
||||||
|
print("\nSearching for 'item' or 'list' keys...")
|
||||||
|
find_keys(data, "item")
|
||||||
|
find_keys(data, "list")
|
||||||
|
|
||||||
|
# Check specific known paths
|
||||||
|
default_scope = data.get("__DEFAULT_SCOPE__", {})
|
||||||
|
print(f"\nTop level keys: {list(default_scope.keys())}")
|
||||||
|
|
||||||
|
except json.JSONDecodeError as e:
|
||||||
|
print(f"JSON Error: {e}")
|
||||||
|
else:
|
||||||
|
print("Script tag not found.")
|
||||||
|
|
@ -1,30 +1,30 @@
|
||||||
import urllib.request
|
import urllib.request
|
||||||
import json
|
import json
|
||||||
|
|
||||||
try:
|
try:
|
||||||
print("Testing /health...")
|
print("Testing /health...")
|
||||||
with urllib.request.urlopen("http://localhost:8002/health", timeout=5) as r:
|
with urllib.request.urlopen("http://localhost:8002/health", timeout=5) as r:
|
||||||
print(f"Health: {r.status}")
|
print(f"Health: {r.status}")
|
||||||
|
|
||||||
print("Testing /api/feed...")
|
print("Testing /api/feed...")
|
||||||
with open("temp_cookies.json", "r") as f:
|
with open("temp_cookies.json", "r") as f:
|
||||||
data = json.load(f)
|
data = json.load(f)
|
||||||
|
|
||||||
# Ensure list format
|
# Ensure list format
|
||||||
if isinstance(data, dict) and "credentials" in data:
|
if isinstance(data, dict) and "credentials" in data:
|
||||||
data = data["credentials"]
|
data = data["credentials"]
|
||||||
|
|
||||||
# Prepare body as dict for safety with new Union type
|
# Prepare body as dict for safety with new Union type
|
||||||
body = {"credentials": data}
|
body = {"credentials": data}
|
||||||
|
|
||||||
req = urllib.request.Request(
|
req = urllib.request.Request(
|
||||||
"http://localhost:8002/api/feed",
|
"http://localhost:8002/api/feed",
|
||||||
data=json.dumps(body).encode('utf-8'),
|
data=json.dumps(body).encode('utf-8'),
|
||||||
headers={'Content-Type': 'application/json'}
|
headers={'Content-Type': 'application/json'}
|
||||||
)
|
)
|
||||||
with urllib.request.urlopen(req, timeout=30) as r:
|
with urllib.request.urlopen(req, timeout=30) as r:
|
||||||
print(f"Feed: {r.status}")
|
print(f"Feed: {r.status}")
|
||||||
print(r.read().decode('utf-8')[:100])
|
print(r.read().decode('utf-8')[:100])
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Error: {e}")
|
print(f"Error: {e}")
|
||||||
42
tests/test_crawl.py
Normal file
42
tests/test_crawl.py
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
import asyncio
|
||||||
|
import base64
|
||||||
|
from crawl4ai import AsyncWebCrawler
|
||||||
|
|
||||||
|
async def main():
|
||||||
|
print("Starting Crawl4AI test...")
|
||||||
|
async with AsyncWebCrawler(verbose=True) as crawler:
|
||||||
|
url = "https://www.tiktok.com/search?q=hot+trend"
|
||||||
|
print(f"Crawling: {url}")
|
||||||
|
|
||||||
|
# Browser config
|
||||||
|
run_conf = {
|
||||||
|
"url": url,
|
||||||
|
"wait_for": "css:[data-e2e='search_video_item']",
|
||||||
|
"css_selector": "[data-e2e='search_video_item']",
|
||||||
|
"screenshot": True,
|
||||||
|
"magic": True
|
||||||
|
}
|
||||||
|
|
||||||
|
print(f"Crawling with config: {run_conf}")
|
||||||
|
result = await crawler.arun(**run_conf)
|
||||||
|
|
||||||
|
if result.success:
|
||||||
|
print("Crawl successful!")
|
||||||
|
print(f"HTML length: {len(result.html)}")
|
||||||
|
|
||||||
|
if result.screenshot:
|
||||||
|
with open("crawl_screenshot.png", "wb") as f:
|
||||||
|
f.write(base64.b64decode(result.screenshot))
|
||||||
|
print("Saved screenshot to crawl_screenshot.png")
|
||||||
|
|
||||||
|
# Save for inspection
|
||||||
|
with open("crawl_debug.html", "w", encoding="utf-8") as f:
|
||||||
|
f.write(result.html)
|
||||||
|
with open("crawl_debug.md", "w", encoding="utf-8") as f:
|
||||||
|
f.write(result.markdown)
|
||||||
|
|
||||||
|
else:
|
||||||
|
print(f"Crawl failed: {result.error_message}")
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
asyncio.run(main())
|
||||||
|
|
@ -1,16 +1,16 @@
|
||||||
import requests
|
import requests
|
||||||
import time
|
import time
|
||||||
|
|
||||||
URL = "http://localhost:8002/api/auth/admin-login"
|
URL = "http://localhost:8002/api/auth/admin-login"
|
||||||
|
|
||||||
def test_login():
|
def test_login():
|
||||||
print("Testing Admin Login...")
|
print("Testing Admin Login...")
|
||||||
try:
|
try:
|
||||||
res = requests.post(URL, json={"password": "admin123"})
|
res = requests.post(URL, json={"password": "admin123"})
|
||||||
print(f"Status: {res.status_code}")
|
print(f"Status: {res.status_code}")
|
||||||
print(f"Response: {res.text}")
|
print(f"Response: {res.text}")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Error: {e}")
|
print(f"Error: {e}")
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
test_login()
|
test_login()
|
||||||
|
|
@ -1,30 +1,30 @@
|
||||||
import urllib.request
|
import urllib.request
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
|
|
||||||
with open("temp_cookies.json", "r") as f:
|
with open("temp_cookies.json", "r") as f:
|
||||||
data = json.load(f)
|
data = json.load(f)
|
||||||
|
|
||||||
# Ensure data is in the expected dict format for the request body
|
# Ensure data is in the expected dict format for the request body
|
||||||
if isinstance(data, list):
|
if isinstance(data, list):
|
||||||
# If temp_cookies is just the list, wrap it
|
# If temp_cookies is just the list, wrap it
|
||||||
body = {"credentials": data}
|
body = {"credentials": data}
|
||||||
elif "credentials" not in data:
|
elif "credentials" not in data:
|
||||||
body = {"credentials": data}
|
body = {"credentials": data}
|
||||||
else:
|
else:
|
||||||
body = data
|
body = data
|
||||||
|
|
||||||
req = urllib.request.Request(
|
req = urllib.request.Request(
|
||||||
"http://localhost:8002/api/feed",
|
"http://localhost:8002/api/feed",
|
||||||
data=json.dumps(body).encode('utf-8'),
|
data=json.dumps(body).encode('utf-8'),
|
||||||
headers={'Content-Type': 'application/json'}
|
headers={'Content-Type': 'application/json'}
|
||||||
)
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with urllib.request.urlopen(req) as response:
|
with urllib.request.urlopen(req) as response:
|
||||||
print(response.read().decode('utf-8'))
|
print(response.read().decode('utf-8'))
|
||||||
except urllib.error.HTTPError as e:
|
except urllib.error.HTTPError as e:
|
||||||
print(f"HTTP Error: {e.code}")
|
print(f"HTTP Error: {e.code}")
|
||||||
print(e.read().decode('utf-8'))
|
print(e.read().decode('utf-8'))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Error: {e}")
|
print(f"Error: {e}")
|
||||||
|
|
@ -1,35 +1,35 @@
|
||||||
import requests
|
import requests
|
||||||
import json
|
import json
|
||||||
import time
|
import time
|
||||||
|
|
||||||
BASE_URL = "http://localhost:8002/api/user/search"
|
BASE_URL = "http://localhost:8002/api/user/search"
|
||||||
|
|
||||||
def test_search():
|
def test_search():
|
||||||
print("Testing Search API...")
|
print("Testing Search API...")
|
||||||
try:
|
try:
|
||||||
# Simple query
|
# Simple query
|
||||||
params = {
|
params = {
|
||||||
"query": "dance",
|
"query": "dance",
|
||||||
"limit": 50,
|
"limit": 50,
|
||||||
"cursor": 0
|
"cursor": 0
|
||||||
}
|
}
|
||||||
start = time.time()
|
start = time.time()
|
||||||
res = requests.get(BASE_URL, params=params)
|
res = requests.get(BASE_URL, params=params)
|
||||||
duration = time.time() - start
|
duration = time.time() - start
|
||||||
|
|
||||||
print(f"Status Code: {res.status_code}")
|
print(f"Status Code: {res.status_code}")
|
||||||
print(f"Duration: {duration:.2f}s")
|
print(f"Duration: {duration:.2f}s")
|
||||||
|
|
||||||
if res.status_code == 200:
|
if res.status_code == 200:
|
||||||
data = res.json()
|
data = res.json()
|
||||||
print(f"Videos Found: {len(data.get('videos', []))}")
|
print(f"Videos Found: {len(data.get('videos', []))}")
|
||||||
# print(json.dumps(data, indent=2))
|
# print(json.dumps(data, indent=2))
|
||||||
else:
|
else:
|
||||||
print("Error Response:")
|
print("Error Response:")
|
||||||
print(res.text)
|
print(res.text)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Request Failed: {e}")
|
print(f"Request Failed: {e}")
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
test_search()
|
test_search()
|
||||||
Loading…
Reference in a new issue