| 12345678910111213141516171819202122 |
- """Shared media download helpers for acquisition and decode adapters."""
- from __future__ import annotations
- import httpx
- REFERER = {
- "douyin": "https://www.douyin.com/",
- "kuaishou": "https://www.kuaishou.com/",
- "bilibili": "https://www.bilibili.com/",
- "shipinhao": "https://channels.weixin.qq.com/",
- "xiaohongshu": "https://www.xiaohongshu.com/",
- "weixin": "https://mp.weixin.qq.com/",
- }
- IOS_UA = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15"
- def download_media_bytes(url: str, platform: str, timeout: float = 180.0) -> bytes:
- headers = {"User-Agent": IOS_UA, "Referer": REFERER.get(platform, "")}
- with httpx.stream("GET", url, headers=headers, timeout=timeout, follow_redirects=True) as response:
- response.raise_for_status()
- return b"".join(response.iter_bytes())
|