抖音 API:影片搜尋、留言與影片網址解析
依 2026-10-25 規格快照
快速解答
抖音 API 提供三類非同步任務:關鍵字搜尋影片、單支影片的留言、公開帳號的貼文時間軸;另有同步的 POST /douyin/videos,把已蒐集的抖音貼文解析成下載網址。下載網址只做轉址,導向抖音目前的公開播放網址,我們不代管、不儲存影片。留言預設每支影片蒐集 50 則,可用 max_items 或 get_all 調整。資料以網路爬蟲蒐集抖音公開發布的內容。
可取得的資料
欄位依 2026-10-25 規格快照。快照沒有逐一列出搜尋結果貼文的欄位,標示「示意樣本」的列取自下方示意資料,正式欄位以試用資料為準。快照也未將 post_id、parent_id 等關聯欄位標為必填,實際出現情形請以試用資料確認。
| 資料 | 欄位 | 端點 |
|---|---|---|
| 關鍵字搜尋的影片貼文(示意樣本) | url, post_id, author, content, tm, date, metadata_tags, like_count, comment_count, share_count, video_length | GET /douyin/search/task/{task_id} |
| 影片留言 | id, post_id, author, author_id, content, push_type, sentiment, tm, tm_crawler, region | GET /douyin/pushs/task/{task_id} |
| 公開帳號的貼文時間軸 | profile, timelines, task, error_message | GET /douyin/users/task/{task_id} |
| 影片下載網址(轉址) | post_id, download_url | POST /douyin/videos |
端點一覽
Base URL 為 https://api.infominer.io/api/v2,每個請求以 auth-header 標頭帶 API 金鑰。主要參數中標示 * 者為必填。
| 方法 | 路徑 | 說明 | 主要參數 |
|---|---|---|---|
| POST | /douyin/search/task |
建立影片關鍵字搜尋任務,可指定日期區間與最多爬取頁數。 | keyword* end_date max_pages start_date |
| GET | /douyin/search/task/{task_id} |
輪詢影片搜尋任務;DONE 時回傳影片貼文與 total_count,每頁最多 100 筆。 | task_id* page pageSize |
| POST | /douyin/pushs/task |
以影片網址建立留言任務,預設 50 則,可用 max_items 或 get_all 調整。 | post_url* crawl_second_layer get_all max_items order_type |
| GET | /douyin/pushs/task/{task_id} |
取回影片已儲存的留言,每頁最多 1000 筆,可指定 hot 或 time 排序。 | task_id* page pageSize order_type |
| POST | /douyin/users/task |
建立公開帳號的貼文時間軸任務,需帶帳號 ID 與起訖日期,可設 max_items。 | author_id* endDate* startDate* max_items |
| GET | /douyin/users/task/{task_id} |
輪詢時間軸任務;DONE 時回傳帳號資料與貼文時間軸。 | task_id* |
| POST | /douyin/videos |
同步把已蒐集的影片貼文解析成下載網址;只轉址,不代管影片。 | post_url* |
取資料流程
- POST /douyin/search/task 帶 keyword 與選填的 start_date、end_date、max_pages,取得任務 id。
- GET /douyin/search/task/{task_id} 輪詢:INIT 或 RUNNING 時繼續等待,DONE 時同一個回應帶回影片貼文與 total_count(pageSize 最多 100),FAILED 時停止並處理失敗。
- 以影片網址 POST /douyin/pushs/task 建立留言任務;未指定時最多蒐集 50 則,max_items 可設定上限(0 或負數代表不設則數上限),get_all 為 true 時取消 50 則的預設限制。
- GET /douyin/pushs/task/{task_id} 取回留言。任務完成後(含部分完成或逾時但已有成功紀錄者)回傳該影片已儲存的留言(可能含先前蒐集的留言),以 page、pageSize(最多 1000)分頁讀取,可用 order_type=hot 或 time 指定讀取排序。
- 需要影片檔時,以完整的 douyin.com /video/{id} 或 /note/{id} 網址呼叫 POST /douyin/videos,取得 post_id 與 download_url;用戶端跟隨轉址後才會拿到 MP4。
curl 範例
建立關鍵字搜尋任務
curl -X POST https://api.infominer.io/api/v2/douyin/search/task \
-H "auth-header: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"keyword": "亲子露营", "start_date": "2026-06-01", "end_date": "2026-06-30", "max_pages": 3}'
以任務 ID 輪詢
curl "https://api.infominer.io/api/v2/douyin/search/task/$TASK_ID?page=1&pageSize=100" \
-H "auth-header: YOUR_API_KEY"
把已蒐集的影片解析成下載網址
curl -X POST https://api.infominer.io/api/v2/douyin/videos \
-H "auth-header: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"post_url": "https://www.douyin.com/video/0000000000000001"}'
示意 JSON 樣本
以下為人工撰寫的示意資料:帳號為 sample_user_n,ID 為明顯的假值,不是真實貼文。
建立任務的回應(示意資料)
{
"id": "00000000-0000-4000-8000-000000000001",
"keyword": "亲子露营",
"status": "INIT"
}
任務完成後的輪詢回應(示意資料)
{
"keyword": "亲子露营",
"status": "DONE",
"total_count": 2,
"task": {
"id": "00000000-0000-4000-8000-000000000001",
"status": "DONE"
},
"data": [
{
"source": "douyin.search",
"platform": "douyin",
"url": "https://www.douyin.com/video/0000000000000001",
"post_id": "0000000000000001",
"content": "第一次带孩子露营,帐篷搭建与行李清单整理给大家 #亲子露营",
"author": "sample_user_1",
"tm": 1781056800,
"date": "2026-06-10",
"metadata_tags": [
"亲子露营",
"露营新手"
],
"like_count": 230,
"comment_count": 18,
"share_count": 9,
"video_length": 95
},
{
"source": "douyin.search",
"platform": "douyin",
"url": "https://www.douyin.com/video/0000000000000002",
"post_id": "0000000000000002",
"content": "露营区的早餐怎么准备比较轻松,三个小技巧",
"author": "sample_user_2",
"tm": 1781060400,
"date": "2026-06-10",
"metadata_tags": [
"露营",
"早餐"
],
"like_count": 77,
"comment_count": 6,
"share_count": 3,
"video_length": 48
}
]
}
貼文與留言如何關聯
留言任務以影片網址 post_url 建立,留言紀錄以 post_id 欄位指回所屬影片。order_type=hot 依按讚數由高到低排序已儲存的留言,同讚數再依發布時間新到舊;這是讀取時的排序,不保證蒐集到的就是全平台最多讚的留言。total_count 可能包含先前蒐集過的留言。目前不提供第二層回覆,crawl_second_layer 只支援 false。
歷史範圍與限制
- 留言預設每支影片 50 則;明確指定 max_items 時以其為準,get_all 為 true 時不設則數上限,但仍受分頁安全上限與來源可取得性限制,未完整蒐集時回應會標示 partial=true。
- 公開帳號的貼文時間軸:max_items 預設 50、最多 1000;設為 0 代表不設則數上限,只受爬取頁數上限限制。若次要時間軸服務暫時無法連線,任務仍回傳完成並附 error_message。
- 影片網址解析只接受完整的 douyin.com /video/{id} 與 /note/{id} 網址,不支援 v.douyin.com 短網址;只適用已蒐集的貼文,呼叫本身不會建立爬蟲任務或觸發蒐集,回傳的是下載網址而不是 MP4 檔。
- 下載網址以 302 轉址到抖音目前的公開 HTTPS 播放網址,用戶端須跟隨轉址;我們只轉址,不代管、不儲存影片,轉址目的地對用戶端可見。可用性為盡力而為:影片刪除、地區或 IP 限制、抖音播放端變動,都可能讓影片無法取得。
- 關鍵字搜尋可回溯的期間與更新頻率,依專案範圍確認。
交付格式
搜尋、留言與時間軸回傳 JSON,任務在 DONE 後由輪詢回應帶回資料;時間軸任務若次要服務暫時無法連線,回應會以 error_message 說明。影片解析回傳 JSON 中的 download_url,影片檔本身由抖音的播放網址提供。批次檔案或其他交付方式,依專案範圍確認。
申請試用
在下方表單勾選抖音,說明要搜尋的關鍵字或帳號、每支影片需要的留言量,以及是否需要影片下載網址。我們會確認範圍,並回覆試用與 API 金鑰的安排。
常見問題
- 抖音 API 可以下載影片嗎?
- POST /douyin/videos 會把已蒐集的貼文解析成下載網址,跟隨轉址即可取得抖音目前的播放檔。我們只轉址,不代管、不儲存影片;影片被刪除或有地區、IP 限制時可能無法取得。
- 可以用 v.douyin.com 短網址嗎?
- 不行。影片網址解析只接受完整的 douyin.com /video/{id} 或 /note/{id} 網址。
- 每支影片的留言最多可以抓幾則?
- 預設 50 則;可用 max_items 指定上限,或把 get_all 設為 true 取消預設上限,仍受分頁安全上限與來源可取得性限制。
- 抖音留言有第二層回覆嗎?
- 目前沒有,crawl_second_layer 只支援 false。
- 抖音資料是怎麼蒐集的?
- 以網路爬蟲蒐集抖音公開發布的內容。是否適用於您的用途,依用途與法域由買方法務評估,我們可提供來源與蒐集方式說明。