據(jù)采集實戰(zhàn)指南)
DouK-Downloader 抖音 TikTok 作品批量下載與數(shù)據(jù)采集實戰(zhàn)指南【免費下載鏈接】TikTokDownloader抖音 / TikTok 平臺作品下載/數(shù)據(jù)采集工具項目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloader想把抖音賬號的作品、評論、賬號數(shù)據(jù)批量拉下來存盤DouK-Downloader 基于 Python 異步請求實現(xiàn)抖音 / TikTok 雙平臺作品下載與數(shù)據(jù)采集另帶直播錄制和 Web API 服務化。本文給出最短跑通路徑、參數(shù)速查與源碼入口適合批量下載與長期采集的用戶。能力矩陣能采什么哪些功能已下線維度能力作品下載抖音視頻 / 圖集 / 實況 / 動圖最高畫質(zhì)TikTok 視頻原畫 / 圖集音樂與動態(tài) / 靜態(tài)封面賬號維度抖音發(fā)布 / 喜歡 / 收藏 / 收藏夾作品TikTok發(fā)布 / 喜歡作品多賬號批量鏈接維度批量下載鏈接作品后臺監(jiān)聽剪貼板鏈接自動下載直播獲取抖音 / TikTok 直播拉流地址調(diào)用 ffmpeg 錄制數(shù)據(jù)采集作品評論、合集 / 合輯、賬號詳細數(shù)據(jù)、綜合 / 視頻 / 用戶 / 直播四類搜索、抖音熱榜工程能力增量下載、斷點續(xù)傳、并發(fā) 4、自動跳過已下載、CSV/XLSX/SQLite 持久化、代理請求、局域網(wǎng)遠程訪問?? 邊界清單以下功能在當前版本不可用或受限使用別依賴Web UI 交互模式重構中選中只會提示該功能正在重構見 主調(diào)度類 的disable_function內(nèi)置加密參數(shù)算法xBogus / aBogus 等README 明確已過期失效、不再維護需自行準備生成代碼從瀏覽器讀取 Cookie、掃碼登錄獲取 Cookie主菜單對應代碼已整段注釋TikTokDownloader.py 第 114-118 行批量下載收藏作品(抖音)僅支持當前已登錄 Cookie 對應賬號暫不支持多賬號付費作品README 明確不支持多開實例未做優(yōu)化需復制整個項目文件夾獨立運行首次下載環(huán)境準備到文件落地Python 3.12 與兩條安裝路徑唯一硬性要求是 Python 版本pyproject.toml 聲明requires-python 3.12低于 3.12 無法運行。拿到源碼后二選一git clone https://gitcode.com/GitHub_Trending/ti/TikTokDownloader cd TikTokDownloader pip install -r requirements.txt python main.pycd TikTokDownloader uv sync --no-dev uv run main.py依賴清單就是技術棧本身httpx[socks]異步請求、rich終端渲染、fastapi/uvicorn服務化、pydantic數(shù)據(jù)校驗、aiosqlite/openpyxl持久化。Cookie 獲取F12 復制 odin_ttCookie 決定接口權限和視頻畫質(zhì)僅在失效后需要重新寫入不是每次運行都寫。步驟參照 Cookie 獲取教程瀏覽器打開https://www.douyin.com/可無痕登錄賬號按 F12 打開開發(fā)人員工具選「網(wǎng)絡」選項卡勾選「保留日志」篩選器輸入cookie-name:odin_tt點擊加載任意作品評論區(qū)選中一個請求復制Cookie完整值寫入方式兩種主菜單選手動輸入 Cookie (抖音)粘貼回車或從剪貼板讀取 Cookie (抖音)直接回車。首次下載編號步驟運行python main.py首次啟動顯示免責聲明輸入YES該選擇持久化僅首次出現(xiàn)按上文寫入抖音 Cookie返回主菜單選終端交互模式選批量下載鏈接作品(抖音)→手動輸入待采集的作品鏈接粘貼一條抖音作品鏈接回車進度條走完后文件落在儲存根路徑root下的folder_name目錄默認Download任意菜單直接回車返回上級輸入Q或q結束程序 文件名由name_format決定默認create_time type nickname desc即創(chuàng)建時間_作品類型_賬號昵稱_作品描述。settings.json 按用途分組速查首次啟動時 settings.py 的__create在項目根目錄自動生成settings.json默認值集中在Settings.default第 21-121 行。改完配置文件必須重啟程序才生效不支持熱加載。身份憑證參數(shù)默認值一句話作用修改建議cookie抖音身份憑證字符串或字典均可登錄后寫入失效再更新cookie_tiktokTikTok 憑證額外需browser_info_tiktok里的device_id等初始設置douyin_platform/tiktok_platformtrue是否啟用對應平臺不用哪個關哪個存儲路徑參數(shù)默認值一句話作用修改建議root儲存根路徑填已存在目錄空值代表項目根目錄folder_nameDownload頂層下載目錄名避免非法字符name_formatcreate_time type nickname desc文件命名模板從id/desc/create_time/nickname/uid/mark/type七鍵組合desc_length/name_length64/128描述 / 文件名最大字符數(shù)文件名過長再調(diào)max_size0文件大小上限字節(jié)0 為不限制超大文件想跳過時設置并發(fā)與限制參數(shù)默認值一句話作用修改建議timeout10請求超時秒有效范圍 2-10max_retry5請求失敗重試次數(shù)有效范圍 0-5chunk2MB每次從服務器接收的數(shù)據(jù)塊大小有效范圍 128KB-2MBmax_pages0分頁請求次數(shù)上限0 等價 99999控制賬號拉取量downloadtrue是否下載文件只采數(shù)據(jù)設falserun_command啟動時預執(zhí)行的功能指令免去重復選菜單見下文持久化參數(shù)默認值一句話作用修改建議storage_format數(shù)據(jù)持久化格式取csv/xlsx/sql三值空值不落任何數(shù)據(jù)文件網(wǎng)絡參數(shù)默認值一句話作用修改建議proxy/proxy_tiktok平臺代理地址啟動時實測連通性ffmpegffmpeg 可執(zhí)行文件路徑錄制直播必填五個參數(shù)的校驗邏輯與回退行為校驗集中在 parameter.py共同特點非法值不會報錯退出而是靜默回退并寫警告日志。cookie__check_cookie第 280-287 行接受字典或字符串其他類型記警告并返回空值。未登錄時賬號頁、私密賬號作品接口直接失敗畫質(zhì)偏低第一懷疑它。root__check_root第 368-382 行先判目錄存在不存在則嘗試在父目錄下創(chuàng)建都不行才回退項目根路徑并寫root 參數(shù)…不是有效的文件夾路徑警告。name_format__check_name_format第 404-415 行要求空格分隔的每個鍵都在七鍵內(nèi)任一非法整體回退默認組合create_time type nickname desc不逐鍵過濾。max_pages__check_max_pages第 525-535 行把 0 與非正整數(shù)統(tǒng)一按 99999 處理。喜歡 / 收藏接口只返回發(fā)布日期不返回操作日期程序必須拉全量再按日期篩選此參數(shù)是唯一量級閥門。proxy__check_proxy第 453-502 行啟動時實際請求平臺頁面測連超時或報錯直接返回None代理靜默失效在日志里搜代理測試成功 / 失敗確認狀態(tài)。舊版本字段有自動映射rename_paramssettings.py 第 122-143 行default_mode→run_command、update_cookie→douyin_platform、update_cookie_tiktok→tiktok_platform、original_cover→static_cover。把 DouK-Downloader 接進你的工作流終端交互模式python main.py # 終端交互模式 - 批量下載鏈接作品(抖音) - 手動輸入待采集的作品鏈接15 個功能入口定義在 main_terminal.py 的__function第 141-209 行抖音 11 項賬號作品 / 鏈接作品 / 直播 / 評論 / 合集 / 賬號詳細 / 搜索 / 熱榜 / 收藏 / 收藏音樂 / 收藏夾 TikTok 4 項賬號作品 / 鏈接作品 / 合集 / 直播。已知限制批量下載收藏作品(抖音)僅支持當前登錄賬號。配置驅動run_command在settings.json把菜單選擇順序用空格連寫進run_command啟動后程序自動走完菜單鏈路適合定時任務run_command: 終端交互模式 批量下載賬號作品(抖音) 使用 accounts_urls 參數(shù)的賬號鏈接(推薦)__check_run_command將其按空格拆分并倒序成棧菜單每進一層彈一個賬號鏈接可預先寫在accounts_urls每項含url、tab、earliest、latest、enable字段。已知限制run_command跳過菜單不跳過前置條件Cookie 未寫入時平臺功能照樣不可用。Web API 服務化主菜單選Web API 模式服務監(jiān)聽0.0.0.0:5555SERVER_HOST/SERVER_PORTstatic.py 第 9-13 行實現(xiàn)為 main_server.py 的APIServer.run_server第 82-101 行。訪問http://127.0.0.1:5555/docs或/redoc查看自動生成的交互文檔。鑒權每個接口經(jīng)token_dependency第 46-51 行讀取請求頭token交 function.py 第 73 行的is_valid_token()校驗失敗返回HTTP 403。該函數(shù)當前默認return True無需令牌公開部署前把它改成固定令牌校驗并可用/token接口測試。from httpx import post data {detail_id: 0123456789, pages: 2} headers {token: } resp post(http://127.0.0.1:5555/douyin/comment, jsondata, headersheaders) print(resp.json())已知限制默認綁定 0.0.0.0對外暴露前必須先設令牌并掛反向代理終結 TLS。Docker 容器docker pull joeanamier/tiktok-downloader docker run --name tk -p 5555:5555 \ -v tiktok_downloader_volume:/app/Volume -it joeanamier/tiktok-downloader docker start -i tk也可用倉庫根目錄 Dockerfile 本地構建雙階段構建器python:3.12-bullseye最終鏡像python:3.12-slimEXPOSE 5555、數(shù)據(jù)卷/app/Volume。已知限制容器無法訪問宿主機文件系統(tǒng)與本地瀏覽器依賴宿主環(huán)境的功能不可用。源碼閱讀路徑一次請求經(jīng)過哪些模塊以粘貼抖音作品鏈接并下載為例link/extractor.py 用正則把短鏈解析成完整鏈接、抽出 19 位作品 IDinterface/ 下的接口類基類模板 template.py按游標分頁請求extract/extractor.py 從響應提取字段并寫入記錄downloader/ 先落臨時文件夾再移入儲存文件夾storage/ 按storage_format持久化。調(diào)度中樞是 TikTokDownloader.py 的TikTokDownloader類負責菜單分發(fā)與run_command直達。三個核心模塊調(diào)度層TikTokDownloader菜單分發(fā)、Cookie 寫入、版本檢查另開守護線程periodic_update_params第 439-447 行每900 秒COOKIE_UPDATE_INTERVAL 15 * 60static.py 第 16 行刷新 msToken、tt_wid 并回寫 Cookie。接口層API模板src/interface/template.pygenerate_params/request_data/check_response三段式run_batch循環(huán)直到has_more為 falsedeal_url_params里抖音追加a_bogusTikTok 追加X-BogusX-Gnarly子類只需關心 URL 與游標規(guī)則。下載層Downloadersrc/downloader/download.pySemaphore(MAX_WORKERS)限制并發(fā)MAX_WORKERS 4static.py 第 2 行注釋注明對直播無效request_file流式寫臨時文件。兩個值得讀的工程細節(jié)重試與退避retry.py 第 10-23 行Retry.retry按max_retry上限循環(huán)每次失敗后await wait()智能延時——延時而為對數(shù)正態(tài)分布均值6 秒、下限 0.5 秒function.pyget_wait_time達到上限才終止任務。文件完整性與續(xù)傳FILE_SIGNATURESstatic.py 第 29-54 行內(nèi)置 jpg/png/mp4/mov/mkv/flv 等文件頭魔數(shù)用于校驗真實類型并糾正后綴下載器在__update_headers_rangedownload.py 第 938-949 行按臨時文件當前大小設置Range: bytes{position}-配合save_file的先臨時后移動實現(xiàn)斷點續(xù)傳。故障排查先看這 6 種現(xiàn)象現(xiàn)象原因解法數(shù)據(jù)獲取失敗、視頻清晰度偏低Cookie 失效或未登錄按教程重寫 Cookie私密賬號需已登錄且已關注該賬號的 Cookie文件沒出現(xiàn)在預期目錄root非法已回退項目根目錄日志搜root 參數(shù)警告改為已存在目錄后重啟代理配置了卻沒生效啟動時代理測連失敗程序自動忽略先手動驗證代理可用再確認日志出現(xiàn)代理測試成功喜歡 / 收藏作品采集很慢接口只返回發(fā)布日期需拉全量再按日期篩選用max_pages限制請求頁數(shù)縮小earliest/latest區(qū)間升級后舊作品丟失舊版數(shù)據(jù)在_internal/Volume新版未繼承按 README 更新方案一將舊版_internal/Volume復制到新版_internal多開實例行為異常項目未針對多開優(yōu)化復制整個項目文件夾各開獨立實例?? 終止程序或 ffmpeg 一律按Ctrl C不要點終端關閉按鈕粘貼的鏈接含換行符會導致 ID 提取失敗。適用場景與合規(guī)提醒DouK-Downloader 適合個人作品歸檔、中小規(guī)模賬號數(shù)據(jù)采集、Web API 服務化集成三類場景雙平臺能力完整全部邏輯可讀可改。?? 本項目涉及數(shù)據(jù)采集與下載使用前請完整閱讀 README 末尾免責聲明因采集與下載行為產(chǎn)生的一切法律責任由使用者自行承擔作者概不負責?!久赓M下載鏈接】TikTokDownloader抖音 / TikTok 平臺作品下載/數(shù)據(jù)采集工具項目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloader創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考