據(jù)采集完整實(shí)戰(zhàn)教程:10 分鐘跑通首次下載)
DouK-Downloader 抖音/TikTok 作品下載與數(shù)據(jù)采集完整實(shí)戰(zhàn)教程10 分鐘跑通首次下載【免費(fèi)下載鏈接】TikTokDownloader抖音 / TikTok 平臺作品下載/數(shù)據(jù)采集工具項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloaderDouK-Downloader歷史名稱 TikTokDownloader是一款完全開源、基于 HTTPX 異步請求實(shí)現(xiàn)的抖音 / TikTok 作品下載與數(shù)據(jù)采集工具。它解決的核心問題是不用抓包、不用寫腳本就能把視頻、圖集、音樂、封面文件下載下來并把作品、賬號、評論、搜索等結(jié)構(gòu)化數(shù)據(jù)持久化保存。典型用途有三類個人作品歸檔、中小規(guī)模賬號數(shù)據(jù)采集、把采集能力以 Web API 形式集成進(jìn)你自己的系統(tǒng)。能力一覽按你的使用場景對號入座場景能做什么單個作品下載粘貼一個抖音或 TikTok 鏈接即可下載支持最高畫質(zhì)視頻、圖集、實(shí)況/動圖、音樂、動態(tài)/靜態(tài)封面賬號批量處理抖音賬號發(fā)布、喜歡、收藏、收藏夾作品TikTok 賬號發(fā)布、喜歡作品支持多賬號批量、增量下載、按發(fā)布時(shí)間篩選鏈接批量與監(jiān)聽手動/文本文件批量輸入作品鏈接后臺監(jiān)聽剪貼板復(fù)制鏈接自動觸發(fā)下載直播錄制獲取抖音 / TikTok 直播拉流地址調(diào)用 ffmpeg 錄制直播數(shù)據(jù)采集作品評論、合集/合輯、賬號詳細(xì)數(shù)據(jù)、綜合/視頻/用戶/直播四類搜索、抖音熱榜工程化特性斷點(diǎn)續(xù)傳、多線程默認(rèn) 4 并發(fā)、自動跳過已下載、代理請求、CSV/XLSX/SQLite 數(shù)據(jù)落盤、容器化與 API 服務(wù)化?? 使用當(dāng)前版本前先認(rèn)清四個不可依賴的功能Web UI 交互模式正在重構(gòu)代碼尚未更新菜單僅有提示內(nèi)置 xBogus/aBogus 等加密參數(shù)算法已過期失效、為合規(guī)不再維護(hù)依賴它的功能可能不正常需自行準(zhǔn)備生成代碼「從瀏覽器讀取 Cookie」與「掃碼登錄獲取 Cookie」均已棄用或失效主菜單對應(yīng)代碼已注釋。準(zhǔn)備工作Python 3.12、依賴與 Cookie 一次配齊環(huán)境與依賴唯一的硬指標(biāo)是 Python 不低于3.12Windows 10、macOS、Linux 均可運(yùn)行README 推薦 Windows 11 自帶終端。獲取源碼后pip 與 uv 兩條路徑任選其一git clone https://gitcode.com/GitHub_Trending/ti/TikTokDownloader cd TikTokDownloader python -m venv venv # 可選 pip install -r requirements.txtuv sync --no-dev # README 推薦路徑 uv run main.pyrequirements.txt 本身就是一張技術(shù)棧清單httpx異步請求、rich彩色終端、fastapiuvicorn服務(wù)化、pydantic數(shù)據(jù)校驗(yàn)、aiosqlite與openpyxl持久化。Cookie 獲取步驟 Cookie 是瀏覽器端身份憑證決定接口權(quán)限與視頻畫質(zhì)只在失效后需要重寫不是每次運(yùn)行都要寫。完整圖文見 Cookie獲取教程.md核心步驟是瀏覽器訪問抖音網(wǎng)頁版并登錄賬號按F12打開開發(fā)人員工具選「網(wǎng)絡(luò)」選項(xiàng)卡并勾選「保留日志」篩選框輸入cookie-name:odin_tt點(diǎn)擊任意作品評論區(qū)觸發(fā)請求選中一個數(shù)據(jù)包全選復(fù)制Cookie的完整值。10 分鐘首次使用從啟動到第一個文件落地程序入口是 main.py它創(chuàng)建TikTokDownloader實(shí)例并調(diào)用run()。按下面步驟原樣操作python main.py首次啟動生成settings.json并展示項(xiàng)目標(biāo)題與免責(zé)聲明輸入YES確認(rèn)該選擇已持久化以后不再出現(xiàn)主菜單選手動輸入 Cookie (抖音)粘貼剛才復(fù)制的 Cookie 后回車嫌麻煩可以選從剪貼板讀取 Cookie (抖音)復(fù)制好直接回車即可返回主菜單選終端交互模式選批量下載鏈接作品(抖音)再選手動輸入待采集的作品鏈接粘貼一個抖音作品鏈接回車等進(jìn)度條走完文件出現(xiàn)在root根目錄下的folder_name文件夾中默認(rèn)就是項(xiàng)目根目錄下的Download/文件名由創(chuàng)建時(shí)間、賬號昵稱、作品描述拼成。菜單交互規(guī)則只需記住兩條任意輸入框直接回車是返回上一級輸入Q或q是結(jié)束程序。關(guān)鍵配置影響行為最大的六個參數(shù)settings.json首次啟動自動生成生成邏輯在 settings.py 的Settings.__create默認(rèn)值全部定義在Settings.default。修改后必須重啟程序才生效不支持熱加載。舊版字段有自動映射default_mode→run_command、original_cover→static_cover等。只挑最影響行為的六個講cookie/cookie_tiktok默認(rèn)兩個平臺的身份憑證字符串或字典均可。未登錄時(shí)賬號頁、私密賬號作品會直接失敗畫質(zhì)偏低時(shí)優(yōu)先懷疑它。建議從已登錄瀏覽器寫入失效再更新。root默認(rèn)儲存根路徑。程序先檢查目錄是否存在再嘗試在父目錄下創(chuàng)建都不行才回退到項(xiàng)目根目錄并寫警告日志。建議填一個確定存在的目錄。name_format默認(rèn)create_time type nickname desc文件命名模板鍵只能從id/desc/create_time/nickname/uid/mark/type七鍵里選任一非法整體回退默認(rèn)。建議批量多賬號下載時(shí)加上uid或mark避免重名。storage_format默認(rèn)數(shù)據(jù)持久化格式CSV/XLSX/SQLite。純采集不下載的場景必須配置否則數(shù)據(jù)不落盤相關(guān)功能會直接警告退出。max_pages默認(rèn)0等價(jià) 99999分頁請求次數(shù)上限。喜歡/收藏接口只返回發(fā)布日期不返回操作日期程序必須拉全量再篩選這個參數(shù)是唯一的量級閥門。建議賬號作品多時(shí)顯式設(shè)小并配合日期區(qū)間縮小范圍。proxy默認(rèn)代理地址。程序啟動時(shí)會真實(shí)請求平臺頁面測連失敗就靜默忽略代理日志里搜「代理測試成功/失敗」確認(rèn)狀態(tài)。部署與服務(wù)化容器一行起API 接進(jìn)你的系統(tǒng)Docker 一行啟動命令鏡像可用倉庫根目錄 Dockerfile 本地構(gòu)建雙階段構(gòu)建最終鏡像基于python:3.12-slim也可直接拉取joeanamier/tiktok-downloader或ghcr.io/joeanamier/tiktok-downloaderdocker run --name tiktok-downloader -p 5555:5555 -v tiktok_downloader_volume:/app/Volume -it joeanamier/tiktok-downloader docker start -i tiktok-downloader注意容器內(nèi)無法訪問宿主機(jī)文件系統(tǒng)與本地瀏覽器依賴宿主環(huán)境的功能不可用其余功能如有異常需向作者反饋。Web API 服務(wù)化調(diào)用示例主菜單選Web API 模式程序在0.0.0.0:5555啟動 FastAPI 服務(wù)常量定義在 static.pySERVER_HOST/SERVER_PORT服務(wù)實(shí)現(xiàn)在 main_server.py 的APIServer.run_server。瀏覽器訪問http://127.0.0.1:5555/docs或/redoc就是自動生成的交互文檔。每個接口經(jīng)token_dependency讀取請求頭里的token交由 function.py 的is_valid_token()校驗(yàn)失敗返回 HTTP 403。該函數(shù)當(dāng)前恒返回True即默認(rèn)無需令牌對外部署前建議在這里改成校驗(yàn)固定令牌并可用/token接口測試有效性。調(diào)用示例from httpx import post data {detail_id: 0123456789, pages: 2} headers {token: } response post(http://127.0.0.1:5555/douyin/comment, jsondata, headersheaders) print(response.json()) 生產(chǎn)化三句話需要多實(shí)例就復(fù)制整個項(xiàng)目文件夾隔離運(yùn)行對外暴露前掛一層反向代理終結(jié) TLS 并限流長期運(yùn)行把 uvicorn 日志重定向到文件。源碼導(dǎo)讀一條請求鏈路三個核心模塊全鏈路一句話串起來用戶輸入經(jīng) link/extractor.py 把短鏈解析成完整鏈接interface/ 下的接口類發(fā)起分頁請求extract/extractor.py 統(tǒng)一提取字段downloader/ 先把文件寫入臨時(shí)文件夾、完成后再移動到儲存目錄storage/ 按storage_format持久化數(shù)據(jù)調(diào)度中樞是 TikTokDownloader.py 的主菜單分發(fā)與run_command直達(dá)。調(diào)度層TikTokDownloadersrc/application/TikTokDownloader.py菜單分發(fā)、Cookie 寫入、版本檢查另開守護(hù)線程按 15 分鐘周期COOKIE_UPDATE_INTERVAL自動刷新 msToken、tt_wid 并回寫 Cookie。接口層API模板src/interface/template.py統(tǒng)一generate_params→request_data→check_response三段式account.py、detail.py、live.py 等子類只關(guān)心各自的 URL 與游標(biāo)規(guī)則終端菜單的 15 個功能入口定義在 main_terminal.py 的__function。下載層Downloadersrc/downloader/download.py信號量限制并發(fā)MAX_WORKERS 4__update_headers_range支持 Range 斷點(diǎn)續(xù)傳先落臨時(shí)目錄再save_file移入目標(biāo)目錄。兩個值得讀的工程細(xì)節(jié)retry.py 的重試裝飾器按max_retry上限循環(huán)、失敗后智能延時(shí)static.py 的FILE_SIGNATURES內(nèi)置 jpg/png/mp4/mov 等文件頭魔數(shù)下載后據(jù)此校驗(yàn)真實(shí)類型并糾正后綴。常見問題先對現(xiàn)象再找解法Q數(shù)據(jù)獲取失敗或視頻清晰度偏低Cookie 失效或未登錄導(dǎo)致。重新寫入 Cookie私密賬號的發(fā)布作品要求登錄且該賬號已關(guān)注目標(biāo)私密賬號。Q文件沒出現(xiàn)在預(yù)期目錄root是非法路徑程序已靜默回退到項(xiàng)目根目錄。查運(yùn)行日志中的 root 警告改成存在的目錄后重啟。Q配置了代理卻沒生效啟動時(shí)代理測連失敗程序自動忽略。先手動驗(yàn)證代理可用再確認(rèn)日志出現(xiàn)「代理測試成功」。Q批量喜歡/收藏作品特別慢接口只返回作品發(fā)布日期程序必須拉全量再按日期篩選。用max_pages控制頁數(shù)并盡量縮小日期區(qū)間。Q升級后舊作品好像丟了舊版本數(shù)據(jù)存在_internal/Volume新版不會自動繼承。按 README 更新方案一把舊版_internal/Volume復(fù)制到新版_internal。Q多開多個實(shí)例行為異常項(xiàng)目未針對多開優(yōu)化。復(fù)制整個項(xiàng)目文件夾每個實(shí)例獨(dú)立運(yùn)行。另外兩點(diǎn)操作紀(jì)律終止程序或 ffmpeg 一律按Ctrl C不要直接點(diǎn)終端關(guān)閉按鈕本項(xiàng)目不支持付費(fèi)作品下載。適用場景與合規(guī)聲明DouK-Downloader 適合三類場景個人作品歸檔、中小規(guī)模賬號數(shù)據(jù)采集、Web API 服務(wù)化集成。雙平臺能力完整全部邏輯可讀可改。?? 使用前請完整閱讀 README.md 末尾的免責(zé)聲明并理解接受全部條款。本項(xiàng)目使用必須自行遵守相關(guān)法律法規(guī)與平臺規(guī)則不得用于侵犯知識產(chǎn)權(quán)的行為因數(shù)據(jù)采集與下載行為產(chǎn)生的一切法律責(zé)任由使用者自行承擔(dān)。【免費(fèi)下載鏈接】TikTokDownloader抖音 / TikTok 平臺作品下載/數(shù)據(jù)采集工具項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloader創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考