Profile
Back to NewsBack
GitHub Trending 4 min
Reader Mode
Evil0ctal/Douyin_TikTok_Download_API: ๐Ÿš€ใ€ŒDouyin_TikTok_Download_APIใ€ๆ˜ฏไธ€ไธชๅผ€็ฎฑๅณ็”จ็š„้ซ˜ๆ€ง่ƒฝๅผ‚ๆญฅๆŠ–้Ÿณใ€ๅฟซๆ‰‹ใ€TikTokใ€Bilibiliๆ•ฐๆฎ็ˆฌๅ–ๅทฅๅ…ท๏ผŒๆ”ฏๆŒAPI่ฐƒ็”จ๏ผŒๅœจ็บฟๆ‰น้‡่งฃๆžๅŠไธ‹่ฝฝใ€‚

Evil0ctal/Douyin_TikTok_Download_API: ๐Ÿš€ใ€ŒDouyin_TikTok_Download_APIใ€ๆ˜ฏไธ€ไธชๅผ€็ฎฑๅณ็”จ็š„้ซ˜ๆ€ง่ƒฝๅผ‚ๆญฅๆŠ–้Ÿณใ€ๅฟซๆ‰‹ใ€TikTokใ€Bilibiliๆ•ฐๆฎ็ˆฌๅ–ๅทฅๅ…ท๏ผŒๆ”ฏๆŒAPI่ฐƒ็”จ๏ผŒๅœจ็บฟๆ‰น้‡่งฃๆžๅŠไธ‹่ฝฝใ€‚

Douyin_TikTok_Download_API

Douyin_TikTok_Download_API

English | ็ฎ€ไฝ“ไธญๆ–‡

๐Ÿš€ ่‡ช้ƒจ็ฝฒ็š„ๆŠ–้Ÿณ / TikTokๆ•ฐๆฎๆŽฅๅฃๆœๅŠกใ€‚ไธ€ๆก docker compose up๏ผŒ่‡ชๅŠจ็ปดๆŠค่บซไปฝๆฑ ๏ผŒๅฏนๅค–ๆไพ› REST APIใ€MCP ไธŽ Web ๆŽงๅˆถๅฐใ€‚

GitHub license</a> Release Version</a> GitHub Star</a> GitHub issues</a>
CI</a> Docker Pulls</a> Docker Image Size</a>

๐Ÿ’– ่ตžๅŠฉๅ•†

่ฟ™ไบ›่ตžๅŠฉๅ•†ๅทฒไป˜่ดนๆ”พ็ฝฎๅœจ่ฟ™้‡Œ๏ผŒDouyin_TikTok_Download_API ้กน็›ฎๅฐ†ๆฐธ่ฟœๅ…่ดนไธ”ๅผ€ๆบใ€‚ๅฆ‚ๆžœๆ‚จๅธŒๆœ›ๆˆไธบ่ฏฅ้กน็›ฎ็š„่ตžๅŠฉๅ•†๏ผŒ่ฏทๆŸฅ็œ‹ๆˆ‘็š„ GitHub ่ตžๅŠฉๅ•†้กต้ขใ€‚

TikHub.io - ๅ…จ็ƒ็คพไบคๅช’ไฝ“ๆ•ฐๆฎไธŽ API ๅธ‚ๅœบ

TikHub.io

ไฝ ็š„ไธ€็ซ™ๅผ็คพไบคๅช’ไฝ“ๆ•ฐๆฎไธŽ API ๅธ‚ๅœบ

ไธบๆŠ–้Ÿณใ€ๅฐ็บขไนฆใ€TikTokใ€Instagramใ€YouTubeใ€Twitter ็ญ‰ๅนณๅฐๆไพ›ไธ“ไธšๆ•ฐๆฎๆ–นๆกˆใ€‚
ๅฎžๆ—ถๆ•ฐๆฎ ยท ็ตๆดปๆŽฅๅฃ ยท ๆ— ็ผ้›†ๆˆ ยท ๆœ‰็ซžไบ‰ๅŠ›็š„ไปทๆ ผไธŽๆŠ˜ๆ‰ฃ

ๅœจ TikHub.io ๅธ‚ๅœบไนฐๅ–ๅฎšๅˆถ APIใ€ๆœๅŠกไธŽ็คพไบคๅช’ไฝ“่งฃๅ†ณๆ–นๆกˆ๏ผŒ
ๅŠ ๅ…ฅไธ€ไธช็”ฑๅผ€ๅ‘่€…ใ€ไผไธšไธŽๅ†…ๅฎนๅˆ›ไฝœ่€…็ป„ๆˆ็š„ๆดป่ทƒ็”Ÿๆ€ใ€‚

ๅคšๅฎถๅ…จ็ƒ้ข†ๅ…ˆ็š„็บขไบบ่ฅ้”€ไธŽ็คพไบคๅช’ไฝ“ๆƒ…ๆŠฅๅนณๅฐๆญฃๅœจไฝฟ็”จ

โ†’ ๅ‰ๅพ€ TikHub.io  ยท  API ๆ–‡ๆกฃ

๐ŸŽฌ ้•ฟ่ฟ™ๆ ท

DTK ๆŽงๅˆถๅฐ๏ผšๆ€ป่งˆใ€่บซไปฝๆฑ ใ€่ฐƒๅบฆๅ™จใ€่ฐƒ่ฏ•ๅฐใ€่ต„ๆ–™ๅบ“ใ€ไธ‹่ฝฝใ€ๆŽฅๅฃๆ–‡ๆกฃไธŽ MCP

ไธ€ๆฌก็œŸๅฎž็š„่ฐƒ็”จ๏ผš็ฒ˜้“พๆŽฅใ€ๅ‘่ฏทๆฑ‚ใ€ๆ‹ฟๅˆฐๅฝ’ไธ€ๅŒ–ๅŽ็š„็ป“ๆžœ๏ผŒ้€”ไธญ็ป่ฟ‡็š„่บซไปฝๆฑ ใ€่ฐƒๅบฆๅ™จๅ’ŒๆŽฅๅฃๆ–‡ๆกฃ้ƒฝๅœจๅŒไธ€ไธชๆŽงๅˆถๅฐ้‡Œใ€‚ ็•Œ้ข่ทŸ็€ๆต่งˆๅ™จ่ฏญ่จ€่ตฐ๏ผŒไธญ่‹ฑๆ–‡้ƒฝๆ˜ฏๆ‰‹ๅ†™็š„๏ผŒไธๆ˜ฏๆœบ็ฟปใ€‚English UI

๐Ÿš€ v4 ไธŽ v5

v5 ๆ˜ฏไธ€ๆฌก้‡ๅ†™๏ผŒไปŽ็ฉบๅˆ†ๆ”ฏ่ตทๆญฅ๏ผŒๆฒกๆœ‰็ปงๆ‰ฟ v4 ็š„ไปปไฝ•ไปฃ็ ใ€‚

v4 ๆœ€ๅคง็š„้—ฎ้ข˜ไปŽๆฅไธๆ˜ฏๅŠŸ่ƒฝๅฐ‘๏ผŒ่€Œๆ˜ฏๆŽฅๅฃไผšๆ‚„ๆ‚„ๆญปๆމ๏ผŒ่€Œไฝ ไธ็Ÿฅ้“ใ€‚Cookie ่ฟ‡ๆœŸใ€็ญพๅ็ฎ—ๆณ•ๅ˜ๆ›ดใ€ ๆŸไธชๆŽฅๅฃ่ขซ้ฃŽๆŽง๏ผŒ้€šๅธธ้ƒฝ่ฆ็ญ‰ๅˆฐๆœ‰ไบบๆฅๆ issue ๆ‰ๅ‘็Žฐใ€‚v5 ๆŠŠ"็œ‹ๅพ—่ง"ๅ’Œ"่ƒฝ่‡ชๆ„ˆ"ๆŽ’ๅœจๅŠŸ่ƒฝๅ‰้ขใ€‚

| | v4 | v5 | |---|---|---| | ่บซไปฝไปŽๅ“ชๆฅ | ไปŽๆต่งˆๅ™จ้‡ŒๆŠ  Cookie๏ผŒ็ฒ˜่ฟ› config.yaml | ๆ— ๅคดๆต่งˆๅ™จ่‡ชๅŠจ้“ธ้€ ๆธธๅฎข่บซไปฝ๏ผŒๅฏ็”จๆ•ฐไธๅคŸๆ—ถ่‡ชๅทฑ่กฅ | | ่ฏทๆฑ‚ๆ€Žไนˆๅ‘ | ๆœ‰่ฏทๆฑ‚ๅฐฑๅ‘ๅ‡บๅŽป | ๅฅๅบทๅบฆๅˆ†ๅฑ‚ใ€้‡ๅŒ– LRU ่ฝฎๆขใ€ๆฏ่บซไปฝ็‹ฌๅ ้”ใ€ๆฏ๏ผˆ่บซไปฝ๏ผŒๆŽฅๅฃ๏ผ‰ไปค็‰Œๆกถใ€ๆŽฅๅฃ็บง็†”ๆ–ญ | | ๅ‡บไบ†้—ฎ้ข˜ | ็ญ‰ๅˆซไบบๆŠฅ้”™ | ๆฏๆฌก่ฏทๆฑ‚ไธ€ๆก็ป“ๆž„ๅŒ–่ฎฐๅฝ•๏ผŒ่บซไปฝๅ’ŒๆŽฅๅฃ้ƒฝๆœ‰ๅฎžๆ—ถๅฅๅบทๅบฆ๏ผŒๆŽงๅˆถๅฐไธŠ็œ‹ๅพ—่ง | | ่ฐƒ็”จๆ–นๅผ | ๅŒๆญฅ๏ผŒๅ‘ๅ‡บๅŽป็ญ‰็€ | ้ป˜่ฎคๅผ‚ๆญฅ๏ผˆ202 + task_id๏ผ‰๏ผŒๅŠ  ?wait= ๅฐฑ้€€ๅ›žๅŒๆญฅ | | ๆ•ฐๆฎ็•™ๅญ˜ | ่งฃๆžๅฎŒๅณๅผƒ | PostgreSQL + Redis๏ผ›่งฃๆž่ฟ‡็š„ๅ†…ๅฎน่‡ชๅŠจๅฝ’ๆกฃ๏ผŒๅนณๅฐๅˆ ไบ†่ฟ™้‡Œ่ฟ˜ๅœจ | | ่ฎฟ้—ฎๆŽงๅˆถ | ๆฒกๆœ‰๏ผŒ่ฐ้ƒฝ่ƒฝ่ฐƒ | API Key + ไฝœ็”จๅŸŸ + ่ง’่‰ฒ๏ผŒๆŽงๅˆถๅฐ้‡Œ็ฎก | | ็•Œ้ข | PyWebIO ๅ•้กต | React ๆŽงๅˆถๅฐ๏ผš่บซไปฝๆฑ ใ€่ฐƒๅบฆๅ™จใ€่ต„ๆ–™ๅบ“ใ€ไธ‹่ฝฝใ€ๆ—ฅๅฟ—ใ€่ฏŠๆ–ญ | | ๆŽฅๅ…ฅๆ–นๅผ | REST | REST + MCP + CLI๏ผŒๅ…ฑ็”จๅŒไธ€ไธช service ๅฑ‚ | | ็ญพๅ | X-Bogusใ€A_Bogus | a_bogusใ€X-Bogusใ€X-Gnarlyใ€X-Dynosaur๏ผŒ็บฏ Python ๅฎž็Žฐ๏ผŒๅฆๆœ‰ๆต่งˆๅ™จๅ…œๅบ• | | ้ƒจ็ฝฒ | pip install -r requirements.txt + python start.py | docker compose up๏ผŒไธ‰ไธช้•œๅƒ | | ๅนณๅฐ | ๆŠ–้Ÿณใ€TikTokใ€ๅ“”ๅ“ฉๅ“”ๅ“ฉ | ๆŠ–้Ÿณใ€TikTok |

ๅ“”ๅ“ฉๅ“”ๅ“ฉๆ˜ฏๅ”ฏไธ€้€€ๆญฅ็š„ไธ€้กน๏ผšv5 ๆš‚ๆ—ถๆฒกๆœ‰ใ€‚ๅฎƒๅ’ŒๆŠ–้Ÿณ / TikTok ไธๅ…ฑ็”จ็ญพๅๅ’Œ่บซไปฝไฝ“็ณป๏ผŒ ้‡ๅ†™ๆ—ถๅ…ˆๆ”พไธ‹ไบ†๏ผŒไน‹ๅŽๅ†่ฏดใ€‚

่ฟ˜ๅœจ็”จ v4๏ผŸ

v4 ็š„ไปฃ็ ไฟ็•™ๅœจ v4 ๅˆ†ๆ”ฏ๏ผŒ ้•œๅƒไนŸ่ฟ˜ๅœจ๏ผŒๆŒ‰็‰ˆๆœฌๅทๆ‹‰ๅฐฑ่กŒ๏ผš

docker pull evil0ctal/douyin_tiktok_download_api:V4.1.2

main ็Žฐๅœจๆ˜ฏ v5๏ผŒlatest ่ทŸ็€ main ่ตฐใ€‚ๆƒณ็•™ๅœจ v4 ไธŠๅฐฑๅ›บๅฎš็‰ˆๆœฌๅท tag๏ผŒๅˆซ็”จ latestใ€‚

๐Ÿ“ฆ ๅฎƒ่ƒฝๅ–ไป€ไนˆ

| ่ƒฝๅŠ› | ๆŠ–้Ÿณ | TikTok | |---|:---:|:---:| | ๅ•ๆกไฝœๅ“่ฏฆๆƒ…๏ผˆ่ง†้ข‘ / ๅ›พ้›†๏ผ‰ | โœ… | โœ… | | ไฝœ่€…่ต„ๆ–™ | โœ… | โœ… | | ไฝœ่€…ไฝœๅ“ๅˆ—่กจ | โœ… | โœ… | | ไฝœ่€…ๅ–œๆฌขๅˆ—่กจ | โœ… | โœ… | | ๅˆ้›† / ๆ’ญๆ”พๅˆ—่กจ | โœ… | โœ… | | ่ฏ„่ฎบ | โœ… | โœ… | | ่ฏ„่ฎบๅ›žๅค | โœ… | โœ… | | ็ฒ‰ไธๅˆ—่กจ | โŒ | โœ… | | ๅ…ณๆณจๅˆ—่กจ | โŒ | โœ… |

ๆŠ–้Ÿณ็š„็ฒ‰ไธๅ’Œๅ…ณๆณจๅˆ—่กจๅชๅฏนๅทฒ็™ปๅฝ•ไผš่ฏๅผ€ๆ”พ๏ผŒๆธธๅฎข่บซไปฝๆ‹ฟไธๅˆฐ๏ผŒๆ‰€ไปฅ่ฟ™ไธคไธชๆŽฅๅฃๅนฒ่„†ๆฒกๆณจๅ†Œ๏ผš ๆณจๅ†Œไธ€ไธชๆฐธ่ฟœ่ฟ”ๅ›ž็ฉบ้กต็š„ๆŽฅๅฃๆฒกๆ„ไน‰ใ€‚ๅฏผๅ…ฅไฝ ่‡ชๅทฑ็š„็™ปๅฝ• Cookie ไน‹ๅŽ๏ผŒๅ…ถไฝ™ๆŽฅๅฃ่ƒฝ็œ‹ๅˆฐ็š„ๅ†…ๅฎนไนŸไผšๆ›ดๅคšใ€‚

ๅช’ไฝ“ไธ‹่ฝฝใ€ๅ†…ๅฎนๅฝ’ๆกฃใ€่ฎกๆ•ฐๅฟซ็…งใ€ๅˆ้›†ใ€ๅฎšๆ—ถ็›‘ๆŽง้ƒฝๆ˜ฏๅ†…็ฝฎ็š„๏ผŒไธ้œ€่ฆ้ขๅค–ๆœๅŠกใ€‚

๐Ÿ”— ๅฎƒ่ฎคๅพ—ไป€ไนˆ้“พๆŽฅ

็ฒ˜่ดดไป€ไนˆ้ƒฝ่กŒโ€”โ€”ๅˆ†ไบซ็Ÿญ้“พใ€ไฝœๅ“้กตๅœฐๅ€๏ผŒๆˆ–่€… App ๅคๅˆถๅ‡บๆฅ็š„ไธ€ๆ•ดๆฎตๅธฆๆ–‡ๆกˆ็š„ๅฃไปค๏ผš

https://v.douyin.com/L4NpDJ6/
https://www.douyin.com/video/7126745726494821640
https://www.douyin.com/jingxuan?modal_id=7660875690212492466
https://www.tiktok.com/@evil0ctal/video/7156033831819037994
https://www.tiktok.com/t/ZTR9nkkmL/
2.84 nqe:/ ้ช‘็™ฝ้ฉฌ็š„ไนŸๅฏไปฅๆ˜ฏๅ…ฌไธป%%็™พไธ‡่ฝฌๅœบๅ˜่บซ https://v.douyin.com/L4FJNR3/ ๅคๅˆถๆญค้“พๆŽฅ๏ผŒๆ‰“ๅผ€Dou้Ÿณๆœ็ดข

็Ÿญ้“พไผš่‡ชๅŠจ่ทŸ้šๅฑ•ๅผ€๏ผŒๆ–‡ๆกˆ้‡Œ็š„้“พๆŽฅไผš่ขซๆๅ–ๅ‡บๆฅใ€‚ไฝœๅ“ ID ่ฟ˜ไผšๅ…ˆๆŒ‰ๅนณๅฐ่‡ชๅทฑ็š„็ผ–็ ่ง„ๅˆ™ๆ ก้ชŒไธ€้๏ผŒ ไธ€ไธชไธๅฏ่ƒฝๅญ˜ๅœจ็š„ ID ๅœจ่ฟ™้‡Œๅฐฑ่ขซๆ‹’ๆމ๏ผŒไธไผšๆตช่ดนไธ€ๆฌกไธŠๆธธ่ฏทๆฑ‚ใ€‚

โš—๏ธ ๆŠ€ๆœฏๆ ˆ

| | | |---|---| | ๆœๅŠก็ซฏ | Python 3.12 ยท FastAPI ยท SQLAlchemy 2.0๏ผˆasync๏ผ‰ยท Alembic ยท Typer ยท structlog | | ไผ ่พ“ | wreq๏ผˆๆต่งˆๅ™จ TLS ๆŒ‡็บนๆจกๆ‹Ÿ๏ผ‰ยท httpx | | ๆ•ฐๆฎ | PostgreSQL + TimescaleDB ยท Redis | | ๆŽงๅˆถๅฐ | React 19 ยท TypeScript ยท Vite ยท TanStack Query ยท wouter ยท i18next | | ็ญพๅ | a_bogus / X-Bogus / X-Gnarly / X-Dynosaur๏ผŒ็บฏ Python ๅฎž็Žฐ | | ่บซไปฝ้“ธ้€  | CloakBrowser ๆ— ๅคดๆต่งˆๅ™จ๏ผŒๅ•็‹ฌไธ€ไธชๅฎนๅ™จ๏ผŒ้€š่ฟ‡ HTTP ่ฐƒ็”จ | | ไธ‹่ฝฝๅ™จ | Go 1.23๏ผŒๅช็”จๆ ‡ๅ‡†ๅบ“๏ผŒ้™ๆ€็ผ–่ฏ‘่ฟ› scratch ้•œๅƒ | | ้‰ดๆƒ | argon2id ๅฃไปคๅ“ˆๅธŒ ยท API Key + ไฝœ็”จๅŸŸ | | ๅฏนๅค–ๅ่ฎฎ | REST๏ผˆOpenAPI๏ผ‰ยท MCP๏ผˆstreamable-http๏ผ‰ยท CLI | | ๅทฅ็จ‹ | uv ยท ruff ยท mypy ยท pytest ยท Docker Compose |

้™คไบ† Postgres ๅ’Œ Redis๏ผŒไธ้œ€่ฆไปปไฝ•ๅ…ถๅฎƒๅŸบ็ก€่ฎพๆ–ฝโ€”โ€”ๆฒกๆœ‰ Kafkaใ€ๆฒกๆœ‰ Elasticsearchใ€ ๆฒกๆœ‰ๅฏน่ฑกๅญ˜ๅ‚จใ€ๆฒกๆœ‰ k8sใ€‚

CloakBrowser ็š„็‰ˆๆœฌ pin ๅœจไธ€ไธชๆŒ‡ๅฎš็š„ commit ไธŠใ€‚่ฟ™ๆ˜ฏไธ€้กนๅฎ‰ๅ…จๆŽงๅˆถ๏ผŒ่ง docker/Dockerfile.browserใ€‚

๐Ÿ—‚ ้กน็›ฎ็ป“ๆž„

Douyin_TikTok_Download_API/
โ”œโ”€โ”€ src/dtk/                ๆœๅŠก็ซฏ๏ผŒไปฃ็ ๅ…จๅœจ่ฟ™
โ”‚   โ”œโ”€โ”€ api/                FastAPI ่ทฏ็”ฑใ€้‰ดๆƒใ€OpenAPI ๆœฌๅœฐๅŒ–
โ”‚   โ”œโ”€โ”€ platforms/          ๆŠ–้Ÿณ / TikTok ้€‚้…ๅ™จ๏ผšๆŽฅๅฃๅฎšไน‰ใ€ๅ‚ๆ•ฐใ€่งฃๆž
โ”‚   โ”œโ”€โ”€ signing/            a_bogus / X-Bogus / X-Gnarly / X-Dynosaur
โ”‚   โ”œโ”€โ”€ transport/          ๅ‡บ็ซ™่ฏทๆฑ‚ใ€ๅ“ๅบ”ๅˆ†็ฑป๏ผˆๆญฃๅธธ / ไธšๅŠก้”™่ฏฏ / ้ฃŽๆŽง / ็ฝ‘็ปœ๏ผ‰
โ”‚   โ”œโ”€โ”€ identity/           ่บซไปฝ้“ธ้€ ไธŽๅฅๅบทๅบฆ
โ”‚   โ”œโ”€โ”€ scheduler/          ่บซไปฝ้€‰ๅ–ใ€ไปค็‰Œๆกถใ€็†”ๆ–ญๅ™จ
โ”‚   โ”œโ”€โ”€ services/           ไธšๅŠกๅฑ‚๏ผŒRESTใ€MCPใ€CLI ๅ…ฑ็”จ
โ”‚   โ”œโ”€โ”€ worker/             ๅผ‚ๆญฅไปปๅŠกใ€ๅ›ž่ฐƒใ€ๅฎšๆ—ถๆ”ถ้›†
โ”‚   โ”œโ”€โ”€ db/                 SQLAlchemy ๆจกๅž‹ไธŽ Alembic ่ฟ็งป
โ”‚   โ”œโ”€โ”€ ops/                ่ฏŠๆ–ญใ€ๅค‡ไปฝใ€ๅฅๅบทๆฃ€ๆŸฅใ€ๅ‘Š่ญฆ้€š็Ÿฅ
โ”‚   โ”œโ”€โ”€ media/              ไธ‹่ฝฝๅ™จๅฎขๆˆท็ซฏ
โ”‚   โ”œโ”€โ”€ models/             ่ทจๅนณๅฐ็ปŸไธ€็š„ๅ†…ๅฎนๆจกๅž‹
โ”‚   โ”œโ”€โ”€ urls/               ้“พๆŽฅ่ฏ†ๅˆซใ€็Ÿญ้“พๅฑ•ๅผ€ใ€ID ๆ ก้ชŒ
โ”‚   โ”œโ”€โ”€ mcp/                MCP server
โ”‚   โ”œโ”€โ”€ cli/                dtk ๅ‘ฝไปค่กŒ
โ”‚   โ”œโ”€โ”€ i18n/               ๆœๅŠก็ซฏไธญ่‹ฑๆ–‡ๆกˆ
โ”‚   โ””โ”€โ”€ core/               ้…็ฝฎใ€ๆ—ฅๅฟ—ใ€้”™่ฏฏ็ฑปๅž‹
โ”œโ”€โ”€ web/                    React ๆŽงๅˆถๅฐ๏ผŒๆž„ๅปบไบง็‰ฉๆ‰“่ฟ›ๅบ”็”จ้•œๅƒ
โ”‚   โ””โ”€โ”€ src/
โ”‚       โ”œโ”€โ”€ pages/          ๆฏไธชๆŽงๅˆถๅฐ้กต้ขไธ€ไธชๆ–‡ไปถ
โ”‚       โ”œโ”€โ”€ components/     ่ฎพ่ฎก็ณป็ปŸไธŽๅ…ฑ็”จ็ป„ไปถ
โ”‚       โ””โ”€โ”€ locales/        ๆŽงๅˆถๅฐไธญ่‹ฑๆ–‡ๆกˆ
โ”œโ”€โ”€ docker/                 ไธ‰ไธช Dockerfileใ€compose ไธŽไธคไธช sidecar
โ”‚   โ”œโ”€โ”€ browser_rpc/        Python๏ผŒๅŒ…่ฃ… CloakBrowser
โ”‚   โ”œโ”€โ”€ downloader/         Go๏ผŒๅช’ไฝ“ไธ‹่ฝฝ sidecar
โ”‚   โ””โ”€โ”€ compose.yml
โ”œโ”€โ”€ documents/              ็”จๆˆทๆ–‡ๆกฃ๏ผŒไธญ่‹ฑๅ„ 17 ็ฏ‡
โ”œโ”€โ”€ tests/                  unit / integration / contract / replay
โ”œโ”€โ”€ scripts/                smoke.sh
โ”œโ”€โ”€ .github/workflows/      CI ไธŽ Docker ้•œๅƒๅ‘ๅธƒ
โ”œโ”€โ”€ alembic.ini
โ”œโ”€โ”€ pyproject.toml
โ””โ”€โ”€ Makefile

โšก๏ธ ๅฟซ้€Ÿๅผ€ๅง‹

้œ€่ฆ Docker ๅ’Œ Docker Composeใ€‚ไป“ๅบ“้‡Œไธๅธฆไปปไฝ•้ป˜่ฎคๅฏ†็ ๆˆ–ๅฏ†้’ฅ๏ผŒๅ…ˆ็”Ÿๆˆ .env๏ผš

POSTGRES_PASSWORD=$(openssl rand -hex 24)
REDIS_PASSWORD=$(openssl rand -hex 24)
cat > .env <<EOF
DTK_SECRET_KEY=$(openssl rand -base64 48)
POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
REDIS_PASSWORD=${REDIS_PASSWORD}
DTK_DATABASE_URL=postgresql+asyncpg://dtk:${POSTGRES_PASSWORD}@postgres:5432/dtk
DTK_REDIS_URL=redis://:${REDIS_PASSWORD}@redis:6379/0
EOF
docker compose -p dtk -f docker/compose.yml up -d
docker compose -p dtk -f docker/compose.yml logs api   # ๆ‰“ๅฐ้ฆ–ๆฌกๅˆๅง‹ๅŒ–ไปค็‰Œ

ๆ‰“ๅผ€ ๏ผŒ็”จๆ—ฅๅฟ—้‡Œ็š„ไปค็‰Œๅˆ›ๅปบ็ฌฌไธ€ไธช็ฎก็†ๅ‘˜่ดฆๅทใ€‚

้•œๅƒไปŽๅ“ชๆฅ

้ป˜่ฎคๆ˜ฏๆœฌๅœฐๆž„ๅปบ๏ผšup ็ฌฌไธ€ๆฌกไผš็”จไป“ๅบ“้‡Œ็š„ Dockerfile ๆŠŠๅบ”็”จ้•œๅƒ็ผ–ๅ‡บๆฅ๏ผŒๅ‡ ๅˆ†้’Ÿใ€‚ ๅฆ‚ๆžœไฝ ไธๆƒณๅœจ่‡ชๅทฑๆœบๅ™จไธŠ็ผ–่ฏ‘๏ผŒๆŠŠ compose ๆŒ‡ๅ‘ๅทฒๅ‘ๅธƒ็š„้•œๅƒๅณๅฏ๏ผš

export DTK_IMAGE=evil0ctal/douyin_tiktok_download_api
export DTK_IMAGE_TAG=latest
docker compose -p dtk -f docker/compose.yml pull
docker compose -p dtk -f docker/compose.yml up -d

pull ่ฟ™ไธ€ๆญฅไธ่ƒฝ็œ๏ผšcompose ้‡Œ่ฟ™ไบ›ๆœๅŠกๅŒๆ—ถๅ†™ไบ† image ๅ’Œ build๏ผŒๆœฌๆœบๆฒกๆœ‰่ฟ™ไธช้•œๅƒๆ—ถ ๅฎƒไผš่‡ชๅทฑๅŽป็ผ–๏ผŒ่€Œไธๆ˜ฏๅŽปๆ‹‰ใ€‚

้•œๅƒๅŒๆ—ถๆไพ› linux/amd64 ไธŽ linux/arm64๏ผŒๆ‰€ไปฅ Apple Silicon ๅ’Œๆ ‘่Ž“ๆดพไธŠ้ƒฝๆ˜ฏๅŽŸ็”Ÿ่ฟ่กŒใ€‚ ๆต่งˆๅ™จๅฎนๅ™จไธๅ‘ๅธƒโ€”โ€”ๅฎƒไผšไปŽไธ€ไธชๆŒ‡ๅฎš็š„ commit ๅฎ‰่ฃ… CloakBrowser๏ผŒ้‚ฃไธช pin ๆ˜ฏๅฎ‰ๅ…จๆŽงๅˆถ๏ผŒ ๅบ”ๅฝ“็”ฑไฝ ่‡ชๅทฑๅ†ณๅฎš๏ผŒๆ‰€ไปฅๅฎƒไธ€็›ดๆ˜ฏๆœฌๅœฐๆž„ๅปบใ€‚

ๆ›ดๅคš้ƒจ็ฝฒ็ป†่Š‚๏ผˆๆต่งˆๅ™จๅฎนๅ™จใ€ไธ‹่ฝฝๅ™จ sidecarใ€ๅๅ‘ไปฃ็†ใ€ๅค‡ไปฝ๏ผ‰่ง docker/README.mdใ€‚

๐Ÿ–ฅ ็”จๅฎƒๅšไป€ไนˆ

| ๅ…ฅๅฃ | ๅœฐๅ€ | ่ฏดๆ˜Ž | |---|---|---| | Web ๆŽงๅˆถๅฐ | / | ่บซไปฝๆฑ ใ€่ฐƒๅบฆๅ™จใ€่ต„ๆ–™ๅบ“ใ€ไธ‹่ฝฝใ€ๆ—ฅๅฟ—ใ€่ฏŠๆ–ญ | | ๆŽฅๅฃๆ–‡ๆกฃ | /docs | ๆŽงๅˆถๅฐๅ†…็š„ Swagger UI๏ผŒไธญ่‹ฑๅŒ่ฏญ | | ่ฃธๆŽฅๅฃๆ–‡ๆกฃ | /swaggerใ€/redoc | ๆ— ้œ€็™ปๅฝ• | | REST API | /api/v1/... | 93 ไธชๆ“ไฝœ | | MCP | /mcp | ไธŽ REST ๅ…ฑ็”จๅŒไธ€ไธช service ๅฑ‚๏ผŒ้…็ฝฎๆ–นๆณ•่งๆŽงๅˆถๅฐ /mcp-guide | | CLI | dtk --help | ๅŒไธŠ |

ไธป่ฆ่ƒฝๅŠ›๏ผš

  • ่งฃๆž๏ผš้“พๆŽฅใ€ๅˆ†ไบซๆ–‡ๆกˆใ€็Ÿญ้“พใ€ไฝœๅ“ ID ้ƒฝๅƒ
  • ๅฝ’ๆกฃ๏ผš่งฃๆž่ฟ‡็š„ๅ†…ๅฎน่‡ชๅŠจๅ…ฅๅบ“๏ผŒๅนณๅฐๅˆ ไบ†่ฟ™้‡Œ่ฟ˜ๅœจ
  • ไธ‹่ฝฝ๏ผšๅช’ไฝ“ๅญ˜ๅˆฐ่‡ชๅทฑ็ฃ็›˜๏ผŒๆ”ฏๆŒๆŒ‰ไฝœ่€…ๆ‰น้‡ใ€่ทณ่ฟ‡ๅทฒไธ‹่ฝฝใ€ๅŽป้‡
  • ๅ…ณๆณจๅˆ—่กจ๏ผšๅฎšๆœŸ้‡ๆ–ฐๆ”ถ้›†ๆŸไธชไฝœ่€…ๆˆ–ไฝœๅ“
  • iOS ๅฟซๆทๆŒ‡ไปค๏ผš/api/v1/ios/shortcut

๐Ÿ”„ ๆ›ดๆ–ฐ

ๆŽงๅˆถๅฐไผšๆ›ฟไฝ ็•™ๆ„๏ผšsystem.check_updates ้ป˜่ฎคๅผ€็€๏ผŒ็™ปๅฝ•ๅŽๅฆ‚ๆžœๆœ‰ๆ–ฐ็‰ˆๆœฌไผšๅผนไธ€ๆฌก๏ผŒ ๆฏ 24 ๅฐๆ—ถๆœ€ๅคšไธ€ๆฌกใ€‚้‚ฃไธช่ฏทๆฑ‚ๆ˜ฏไฝ ็š„ๆต่งˆๅ™จๅ‘็ป™ GitHub ็š„๏ผŒๆœๅŠกๅ™จไธไผšๅพ€ๅค–ๅ‘ไปปไฝ•ไธœ่ฅฟ โ€”โ€”ๆ‰€ไปฅๅฎƒไธไผšๅ‘Š่ฏ‰ไปปไฝ•ไบบไฝ ่ฟ™ๅฐๅฎžไพ‹ๅญ˜ๅœจใ€‚ๆฐ”ไบบ็š„่ฏๅœจ่ฎพ็ฝฎ้‡Œๅ…ณๆމใ€‚

ๆ›ดๆ–ฐๆœฌ่บซๅฐฑๆ˜ฏๆ‹‰้•œๅƒๅŠ ้‡ๅฏ๏ผš

cd /opt/dtk && git pull

็”จๅทฒๅ‘ๅธƒ้•œๅƒ็š„๏ผˆๆŽจ่๏ผ‰๏ผšๆŠŠ .env ้‡Œ็š„ DTK_IMAGE_TAG ๆ”นๆˆๆ–ฐ็‰ˆๆœฌ

docker compose -p dtk -f docker/compose.yml pull api worker downloader docker compose -p dtk -f docker/compose.yml run --rm migrate docker compose -p dtk -f docker/compose.yml up -d

่‡ชๅทฑๆž„ๅปบ็š„่ฏๆŠŠ pull ๆขๆˆ buildใ€‚migrate ๆฏๆฌกๅฏๅŠจ้ƒฝไผš่ท‘๏ผŒAlembic ๆ˜ฏๅน‚็ญ‰็š„๏ผŒ ๆ‰€ไปฅๅ•็‹ฌ่ท‘้‚ฃไธ€ๆญฅๅชๆ˜ฏๆƒณๅœจๅˆ‡ๆขๅฎนๅ™จไน‹ๅ‰ๅ…ˆๆŠŠๅบ“ๅ‡ไธŠๅŽปใ€‚

ไฝ ็š„ๆ•ฐๆฎไธไผšๅŠจใ€‚ ๅ‘ฝๅๅท๏ผˆpostgres-dataใ€redis-dataใ€media-data๏ผ‰ไธ้šๅฎนๅ™จ ้‡ๅปบ่€Œๆถˆๅคฑ๏ผŒ่บซไปฝๆฑ ใ€ๅฝ’ๆกฃใ€่ฎพ็ฝฎๅ’Œ API Key ้ƒฝๅœจๅŽŸๅœฐใ€‚

ๆต่งˆๅ™จ้•œๅƒๅชๆœ‰ๅœจ docker/Dockerfile.browser ๆˆ– CloakBrowser ็š„ pin ๅ˜ไบ†ๆ‰้œ€่ฆ้‡ๅปบ๏ผŒ ไธ€่ˆฌ็š„็‰ˆๆœฌๆ›ดๆ–ฐไธ็”จ็ฎกๅฎƒใ€‚

ๆƒณๅ›ž้€€ๅฐฑๆŠŠ DTK_IMAGE_TAG ๆ”นๅ›žไธŠไธ€ไธช sha- ๆˆ–็‰ˆๆœฌๅทๅ† up -dใ€‚ ่ฟ็งปไธๆไพ›่‡ชๅŠจ้™็บงโ€”โ€”ๅ‡็บงๅ‰ๅค‡ไปฝๆ•ฐๆฎๅบ“๏ผŒ่ฟ™ๆ˜ฏๅ”ฏไธ€็จณๅฆฅ็š„ๅ›ž้€€่ทฏๅพ„ใ€‚

๐Ÿ“– ๆ–‡ๆกฃ

ๅฎŒๆ•ดๆ–‡ๆกฃๅœจ documents/๏ผŒไธญ่‹ฑๅŒ่ฏญ๏ผŒๅ…ฑ 17 ็ฏ‡ใ€‚

ๆ–ฐๆ‰‹ไปŽ่ฟ™้‡Œๅผ€ๅง‹๏ผš ๅฟซ้€Ÿๅผ€ๅง‹ ยท ๆ ธๅฟƒๆฆ‚ๅฟต ยท ๆŽงๅˆถๅฐๆ€ป่งˆ

้ƒจ็ฝฒไธŽ่ฟ็ปด๏ผš ๅฎ‰่ฃ…ไธŽ้ƒจ็ฝฒ ยท ้…็ฝฎๅ‚่€ƒ ยท ่ฟ็ปด ยท ๆ•…้šœๆŽ’ๆŸฅ ยท ๅฎ‰ๅ…จ

ๅผ€ๅ‘ๅฏนๆŽฅ๏ผš REST API ๆŒ‡ๅ— ยท MCP ไธŽ AI ๅฎขๆˆท็ซฏ ยท ๅ‘ฝไปค่กŒๅ‚่€ƒ ยท ๅ‚ไธŽๅผ€ๅ‘

ๆŽฅๅฃๅ‚่€ƒๆ‰‹ๅ†Œไธๅœจๆ–‡ๆกฃ้‡Œ๏ผŒ่€Œๆ˜ฏ็”ฑไปฃ็ ็›ดๆŽฅ็”Ÿๆˆ็š„๏ผšไฝ ่‡ชๅทฑ็š„ๅฎžไพ‹ๅœจ /docs๏ผˆๆŽงๅˆถๅฐๅ†…๏ผ‰ ไปฅๅŠ /swaggerใ€/redocใ€/openapi.json๏ผˆๆ— ้œ€็™ปๅฝ•๏ผ‰ๆไพ›๏ผŒไธญ่‹ฑๅŒ่ฏญใ€‚

English documentation: documents/README.md

๐Ÿ“ฎ ่”็ณปๆ–นๅผ

| | | |---|---| | ้—ฎ้ข˜ๅ้ฆˆ | GitHub Issues โ€”โ€” ๅ…ฌๅผ€ใ€ๆœ‰่ฎฐๅฝ•๏ผŒ้‡ๅˆฐ่ฟ‡ๅŒๆ ท้—ฎ้ข˜็š„ไบบไนŸ่ƒฝๅ›ž็ญ”ไฝ  | | ้‚ฎ็ฎฑ | [email protected] โ€”โ€” ็›ด่พพไฝœ่€…ๆœฌไบบ๏ผŒ้€‚ๅˆไธๆ–นไพฟๅ…ฌๅผ€็š„ๅ†…ๅฎน | | ไฝœ่€… | @Evil0ctal |

ๆ้—ฎไน‹ๅ‰่ฏทๅ…ˆ็œ‹ๆ•…้šœๆŽ’ๆŸฅ๏ผŒๅนถ้™„ไธŠ่‡ชๆฃ€้กต้ขๆˆ– dtk diagnose ็š„่พ“ๅ‡บใ€‚ๅฎƒ่ƒฝๅ›ž็ญ”็ปดๆŠค่€…ๅŽŸๆœฌ่ฆๅ่ฟ‡ๆฅ้—ฎไฝ ็š„ๅคง้ƒจๅˆ†้—ฎ้ข˜ใ€‚

โญ๏ธ Star ๅކๅฒ

Star History Chart</a>

่ตทๅง‹ไบŽ 2021/11/06 ยท GitHub @Evil0ctal

๐Ÿ“„ ่ฎธๅฏๅ่ฎฎ

Apache License 2.0ใ€‚

ไฝ ๅฏไปฅไฝฟ็”จใ€ไฟฎๆ”นใ€ๅˆ†ๅ‘ๆœฌ้กน็›ฎ๏ผŒๅŒ…ๆ‹ฌๅ•†ไธš็”จ้€”๏ผŒไนŸๅŒ…ๆ‹ฌๆ”พ่ฟ›้—ญๆบไบงๅ“ใ€‚่ฟ™้กนๆŽˆๆƒไธๅฏๆ’ค้”€ใ€‚ ไฝœไธบไบคๆข๏ผŒๅ่ฎฎ่ฆๆฑ‚ไฝ ๏ผš

  • ๅˆ†ๅ‘ๅ‰ฏๆœฌๆ—ถไฟ็•™็‰ˆๆƒๅฃฐๆ˜Žๅ’Œๅ่ฎฎๅ…จๆ–‡
  • ๅœจไฝ ๆ”นๅŠจ่ฟ‡็š„ๆ–‡ไปถ้‡Œ่ฏดๆ˜Žๆ”นไบ†ไป€ไนˆ
  • ๆŽฅๅ—ๅฎƒไธๆไพ›ไปปไฝ•ๆ‹…ไฟ

ไฝœ่€…็š„ไธ€ไธช่ฏทๆฑ‚

่ฟ™ไธช้กน็›ฎๆ˜ฏๅ…่ดน้€ๅ‡บๅŽป็š„๏ผŒๅฎƒ่ƒฝไธ€็›ดๅ…่ดนๆ˜ฏๅ› ไธบๆœ‰่ตžๅŠฉๅ•†๏ผŒ่€Œไธๆ˜ฏๅ› ไธบๅ‘็”จๆˆทๆ”ถ่ดนใ€‚ ๅฆ‚ๆžœไฝ ้ ๅฎƒ่ตšๅˆฐไบ†้’ฑ๏ผŒ่ฏท่€ƒ่™‘ไนŸ่ตžๅŠฉไธ€ไธ‹๏ผŒ่€Œไธๆ˜ฏๅชๆ‹ฟใ€‚

่ฟ™ๆ˜ฏไธ€ไธช่ฏทๆฑ‚๏ผŒไธๆ˜ฏๅ่ฎฎๆกๆฌพโ€”โ€”Apache 2.0 ๅ…่ฎธๅ•†ไธš็”จ้€”๏ผŒไธŠ้ข่ฟ™ๆฎต่ฏไธไผšๆŠŠ่ฟ™้กนๆƒๅˆฉๆ”ถๅ›žๅŽปใ€‚

โ˜•๏ธ ่ตž่ตไฝœ่€…

ไธŠ้ข็š„่ตžๅŠฉๅ•†ไป˜็š„ๆ˜ฏ้กน็›ฎ็š„้’ฑ๏ผ›่ฟ™ไธ€่Š‚ๆ˜ฏ็ป™็ปดๆŠคๅฎƒ็š„ไบบ็š„๏ผŒๅฎŒๅ…จ่‡ชๆ„ฟใ€‚

| ็ฝ‘็ปœ | ๅœฐๅ€ | |---|---| | Solana | HvtkxmDERbNXfCoojpdFAYN5mSWowjpXgedsG9eF7y9z | | Tron (TRC20) | TQwSM2vjcnrdRU7gY7KNp2tCgMnK33azkT | | Ethereum (ERC20) | 0x2f210FdfD981B59eC130370E5b1Aa8A6a06fb5Ad | | BNB Smart Chain (BEP20) | 0x2f210FdfD981B59eC130370E5b1Aa8A6a06fb5Ad | | Bitcoin | bc1q785j55cxlnjqe8lkwy8cq57t8t9vn3ak9tlsfy |

่ฟ™ไบ›็ฝ‘็ปœ้ƒฝๆ”ฏๆŒๅธธ่ง็š„ไธปๆตไปฃๅธใ€‚TRC20 ๆˆ– Solana ไธŠ็š„ USDT ๆœ€ๆ–นไพฟๆŽฅๆ”ถ๏ผŒๆ‰‹็ปญ่ดนไนŸๆœ€ไฝŽใ€‚

ๅช่ƒฝๆŒ‰ๅœฐๅ€ๆ‰€ๅฑž็š„็ฝ‘็ปœ่ฝฌ่ดฆใ€‚ ่ฝฌ้”™้“พ็š„่ต„ไบงไปปไฝ•ไบบ้ƒฝๆ— ๆณ•ๆ‰พๅ›žใ€‚
ไปฅๅคชๅŠๅ’Œ BNB Smart Chain ๅ…ฑ็”จๅŒไธ€ไธชๅœฐๅ€ๆ˜ฏๆญฃๅธธ็š„๏ผšไธค่€…้ƒฝๆ˜ฏ EVM ้“พ๏ผŒ็”ฑๅŒไธ€ๆŠŠ็ง้’ฅๆŽงๅˆถใ€‚

ไนŸๅฏไปฅ่ตฐ GitHub Sponsorsใ€‚

ไฝ ้œ€่ฆ่‡ชๅทฑ่ดŸ่ดฃ็š„้ƒจๅˆ†

ๆœฌ้กน็›ฎไปŽๆœ‰่‡ชๅทฑๆœๅŠกๆกๆฌพ็š„ๅนณๅฐๆŠ“ๅ–ๆ•ฐๆฎ๏ผŒๅนถไธ”่ฟ่กŒๅœจไฝ ่‡ชๅทฑๆŽงๅˆถ็š„ๆœบๅ™จไธŠใ€‚ ่ฏท้ตๅฎˆๅนณๅฐๆกๆฌพๅ’Œๆ‰€ๅœจๅœฐๆณ•ๅพ‹๏ผŒๅฐŠ้‡ไฝ ๆ‰€ๆ”ถ้›†ๅ†…ๅฎน่ƒŒๅŽ็š„ไบบ๏ผŒ ไธ่ฆๆ‹ฟๅฎƒๅŽป้ชšๆ‰ฐไปปไฝ•ไบบ๏ผŒไนŸไธ่ฆๆ‹ฟๅฎƒๅŽปไบŒๆฌกๅˆ†ๅ‘ไธๅฑžไบŽไฝ ็š„ไฝœๅ“ใ€‚่ฟ™ไบ›ๆฒกๆœ‰ๅˆซไบบ่ƒฝๆ›ฟไฝ ๆŠŠๅ…ณใ€‚

Chat with me