抖音 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*

取資料流程

  1. POST /douyin/search/task 帶 keyword 與選填的 start_date、end_date、max_pages,取得任務 id。
  2. GET /douyin/search/task/{task_id} 輪詢:INIT 或 RUNNING 時繼續等待,DONE 時同一個回應帶回影片貼文與 total_count(pageSize 最多 100),FAILED 時停止並處理失敗。
  3. 以影片網址 POST /douyin/pushs/task 建立留言任務;未指定時最多蒐集 50 則,max_items 可設定上限(0 或負數代表不設則數上限),get_all 為 true 時取消 50 則的預設限制。
  4. GET /douyin/pushs/task/{task_id} 取回留言。任務完成後(含部分完成或逾時但已有成功紀錄者)回傳該影片已儲存的留言(可能含先前蒐集的留言),以 page、pageSize(最多 1000)分頁讀取,可用 order_type=hot 或 time 指定讀取排序。
  5. 需要影片檔時,以完整的 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 金鑰的安排。

我們只會用您提供的資料回覆這次詢問,詳見隱私權政策。 或寫信到 [email protected]

常見問題

抖音 API 可以下載影片嗎?
POST /douyin/videos 會把已蒐集的貼文解析成下載網址,跟隨轉址即可取得抖音目前的播放檔。我們只轉址,不代管、不儲存影片;影片被刪除或有地區、IP 限制時可能無法取得。
可以用 v.douyin.com 短網址嗎?
不行。影片網址解析只接受完整的 douyin.com /video/{id} 或 /note/{id} 網址。
每支影片的留言最多可以抓幾則?
預設 50 則;可用 max_items 指定上限,或把 get_all 設為 true 取消預設上限,仍受分頁安全上限與來源可取得性限制。
抖音留言有第二層回覆嗎?
目前沒有,crawl_second_layer 只支援 false。
抖音資料是怎麼蒐集的?
以網路爬蟲蒐集抖音公開發布的內容。是否適用於您的用途,依用途與法域由買方法務評估,我們可提供來源與蒐集方式說明。