IP Cloudflare Worker dùng chung nên hay hết quota tikwm (10k/ngày/IP). Thêm ssstik
(hạ tầng riêng, không dính quota tikwm) làm nguồn ưu tiên; tikwm là dự phòng. Trả
JSON dạng tikwm để backend giữ nguyên logic. ?only=ssstik|tikwm để test từng nguồn.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
feat(download): relay 'server sạch' (Cloudflare Worker) vượt chặn IP datacenter cho TikTok
Cách FREE, không cần proxy trả phí. tikwm/anti-bot chặn IP datacenter (HF/AWS)
-> dựng relay nhỏ trên IP sạch của Cloudflare Workers (hoặc Deno Deploy), backend
gọi relay thay vì gọi thẳng tikwm.
- ydl.py: _tiktok_relay() đọc secret TIKTOK_RELAY_URL. _fetch_json() ưu tiên relay
(?url=) trước, rồi tikwm trực tiếp/proxy. _dl_bytes() thử relay (?proxy=) để tải
hộ media qua IP sạch. Không set -> hành vi như cũ.
- deploy/tiktok_relay_worker.js: Worker sẵn sàng dán lên Cloudflare (100k req/ngày
free) hoặc Deno Deploy; gọi hộ tikwm + tải hộ file, trả JSON y hệt.
Đã test end-to-end bằng relay giả lập local: tải video TikTok qua relay OK.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>