Tài liệuLink video và tùy chọn

Link video và tùy chọn

Kiểm tra link được hỗ trợ, chọn phụ đề hay AI, bật nhận diện người nói và đặt ngôn ngữ cho transcript.

Bạn có thể gửi link YouTube, X, TikTok, Instagram, Facebook, Bluesky hoặc tải file lên. Các nền tảng khác và dạng link cho từng loại video công khai đã ghi hình nằm trong bảng dưới. Khi gọi POST /v1/transcriptions, thêm source, diarize và language vào body nếu muốn chọn nguồn transcript, bật nhận diện người nói hoặc đặt ngôn ngữ. Bạn có thể bỏ qua cả ba trường này để dùng mặc định.

Gửi được link từ đâu?

Đặt link vào url; API sẽ tự nhận diện nền tảng. Chỉ truyền thêm platform khi cần, và giá trị phải khớp với link.

Nền tảngDạng link dùng được
YouTube (youtube)Xem bảng các dạng URL YouTube ở phần sau.
X (x)Link bài đăng có video trên x.com hoặc twitter.com, chẳng hạn https://x.com/user/status/1234567890.
TikTok (tiktok)Link bài đăng video trên tiktok.com. Link rút gọn vm.tiktok.com, vt.tiktok.com và www.tiktok.com/t/ cũng dùng được.
Instagram (instagram)Link Reels hoặc bài đăng video trên instagram.com có đường dẫn /reel/, /reels/, /p/ hoặc /tv/. Chấp nhận cả link reel và bài đăng có tên người dùng đứng trước các đường dẫn này.
Facebook (facebook)Link video và reel trên facebook.com, kể cả link watch. Các dạng chia sẻ fb.watch, /share/v/ và /share/r/ cũng dùng được.
Bluesky (bluesky)Link bài đăng có video trên bsky.app, chẳng hạn https://bsky.app/profile/user.example/post/3l3w4b5c6d7e2.
Twitch (twitch)VOD sau khi buổi phát kết thúc: twitch.tv/videos/<id> hoặc /<channel>/v/<id> (cũng chấp nhận video). Clip: clips.twitch.tv/<slug>, twitch.tv/<channel>/clip/<slug> hoặc /clip/<slug>. Chấp nhận host twitch.tv, www, m, go và clips.twitch.tv.
Dailymotion (dailymotion)Link dạng dailymotion.com/video/<id>, có thể thêm _title; /embed/video/<id>; hoặc dai.ly/<id>. Dùng được cả host www.dailymotion.com và touch.dailymotion.com.
Pinterest (pinterest)Pin chứa video tải trực tiếp lên Pinterest trên pinterest.com hoặc www.pinterest.com: /pin/<id>/ hay /pin/<slug>--<id>/. Chỉ lấy khối video native đầu tiên. Không nhận video nhúng từ ngoài, ảnh, board, link pin.it hoặc tên miền theo khu vực.
LinkedIn (linkedin)Link bài đăng video công khai trên linkedin.com hoặc www.linkedin.com: /posts/<slug>-<activity-id>-<four-character-suffix> hay /feed/update/urn:li:activity:<id>/. Không nhận link trang cá nhân, Learning, sự kiện hoặc lnkd.in.
Snapchat Spotlight (snapchat)Link video dạng /spotlight/<id> trên snapchat.com hoặc www.snapchat.com. Không nhận story hay trang cá nhân.

Với năm nền tảng bổ sung, URL phải dùng HTTPS, không kèm thông tin đăng nhập và không đặt cổng riêng. Mỗi link phải dẫn đến một video công khai đã ghi hình. Không nhận bài riêng tư, nội dung cần đăng nhập, buổi phát đang trực tiếp hoặc đang xử lý, trang cá nhân, feed hay bộ sưu tập. transcript1 không gửi cookie tài khoản khi lấy video. Tham số thời gian trên URL không cắt ngắn nội dung.

Giữ nguyên media_id mà API trả về cho clip Twitch và Snapchat Spotlight. Đây có thể là chuỗi ID không thể suy ra từ URL; đừng tự tách hay dựng lại ID.

Trên X, TikTok, Instagram, Facebook và Bluesky, hãy gửi link bài đăng công khai. Nếu bài có nhiều video, transcript1 chỉ lấy video đầu tiên. Trang cá nhân, story, trang livestream và bài ảnh TikTok không dùng được. Nếu nền tảng yêu cầu đăng nhập, job báo login_required. Nếu video không có track audio, job báo no_audio. Bạn không mất phút trong cả hai trường hợp.

YouTube, X, TikTok, Bluesky, Dailymotion và LinkedIn cho phép lấy phụ đề nếu video có bản phù hợp bằng ngôn ngữ gốc. Instagram, Facebook, Twitch, Pinterest và Snapchat chỉ chuyển giọng nói thành văn bản bằng AI: chọn auto hoặc stt, không chọn captions. Mọi nền tảng và file tải lên đều có cùng giá mỗi phút, tính theo thời lượng đo được.

Chỉ các dạng link rút gọn trong bảng trên mới dùng được. Nếu link chia sẻ chưa cho biết ID bài đăng lúc gửi request, API không thể tìm lại job cũ tương ứng. Muốn dùng lại transcript, hãy gửi link đầy đủ của bài đăng.

Nguồn phụ đềLấy loại phụ đề nào, có mốc thời gian gì?
YouTube và XLấy track phụ đề sẵn có. Mốc thời gian từng từ chỉ có ở phụ đề tự động của YouTube.
TikTokLấy phụ đề VTT hoặc SRT của video nếu có. Chỉ có mốc thời gian theo đoạn.
BlueskyLấy phụ đề của video native trên PDS tin cậy mà transcript1 hỗ trợ. Không lấy từ host federated bất kỳ, video được trích dẫn hoặc video bên ngoài. Chỉ có mốc thời gian theo đoạn.
DailymotionChỉ lấy file SRT trực tiếp, không lấy playlist phụ đề. Có mốc thời gian theo đoạn; track được nhận diện là en-auto hoặc fr-auto sẽ có loại auto_generated.
LinkedInLấy track VTT sẵn có của bài đăng video native công khai, không lấy từ LinkedIn Learning. Chỉ có mốc thời gian theo đoạn.

Dạng link YouTube

Với YouTube, đặt link video vào url và bỏ qua platform hoặc đặt là youtube. Các dạng dưới đây đều dùng được, có hoặc không có www.:

Loại linkVí dụ
Trang xem videohttps://www.youtube.com/watch?v=dQw4w9WgXcQ
Link rút gọnhttps://youtu.be/dQw4w9WgXcQ
Shortshttps://www.youtube.com/shorts/dQw4w9WgXcQ
Link nhúnghttps://www.youtube.com/embed/dQw4w9WgXcQ
Đường dẫn Livehttps://www.youtube.com/live/dQw4w9WgXcQ
Bản di động và YouTube Musichttps://m.youtube.com/watch?v=dQw4w9WgXcQ, https://music.youtube.com/watch?v=dQw4w9WgXcQ

API bỏ qua tham số query như t, list và si. Các dạng link khác nhau của cùng một video vẫn trỏ đến cùng video đó. Gửi URL đầy đủ, không gửi riêng ID video dài 11 ký tự. Link kênh, link chỉ có playlist hoặc link không đúng dạng sẽ nhận 422 invalid_url. Nếu platform không nằm trong danh sách hỗ trợ, API trả 422 unsupported_platform kèm supported_platforms.

Bạn có thể gửi video công khai hoặc không công khai (unlisted), nhưng không gửi video riêng tư, giới hạn độ tuổi hay đang livestream. Các trường hợp này lần lượt báo media_private, age_restricted và live_stream. Nếu có file của mình, bạn có thể tải file lên.

source

Chọn source để lấy transcript từ phụ đề sẵn có hoặc từ audio.

Giá trịCách xử lý
auto (mặc định)Tìm phụ đề phù hợp bằng ngôn ngữ gốc trên YouTube, X, TikTok, Bluesky, Dailymotion và LinkedIn trước. Nếu không dùng được phụ đề, AI chuyển audio thành văn bản.
captionsChế độ captions (chỉ phụ đề) không tải audio, không chạy AI speech-to-text. Nếu không có track phù hợp, job báo no_captions và không tính phí. Nếu tải nội dung phụ đề bị lỗi, job báo fetch_failed. Nền tảng không hỗ trợ phụ đề sẽ trả 422 invalid_request.
sttBỏ qua phụ đề và luôn dùng AI để chuyển audio thành văn bản.

Với file tải lên, transcript1 luôn dùng speech-to-text. Chỉ đặt source là auto hoặc stt; chọn captions sẽ nhận 422 invalid_request.

Phụ đề phải đúng ngôn ngữ bạn yêu cầu. Nếu language là auto, đó phải là ngôn ngữ gốc của video. Trên YouTube, transcript1 lấy bản do người đăng tải lên hoặc bản YouTube tự tạo bằng ngôn ngữ đó, không lấy bản dịch tự động. Thứ tự ưu tiên là phụ đề do người đăng tải lên, track không rõ nguồn gốc, rồi phụ đề tự động. Không rõ nguồn gốc không có nghĩa là do người đăng tải lên.

Trên X, transcript1 lấy track VTT sẵn có. Kể cả phụ đề tự động cũng chỉ có mốc thời gian theo đoạn, không có mốc thời gian từng từ. Chế độ auto có thể chuyển sang STT khi không lấy được nội dung phụ đề hoặc không parse được nội dung đó; lỗi route, lưu trữ hay lập trình không kích hoạt chuyển sang STT. Chọn stt thì luôn bỏ qua phụ đề.

diarize

Bật diarize để nhận diện người nói trong transcript. Mặc định là false.

  • Nhận diện người nói cần speech-to-text. Nếu đang dùng source là auto, đặt diarize: true sẽ bỏ qua phụ đề và xử lý audio ngay.
  • Không kết hợp source: "captions" với diarize: true; API trả 422 invalid_request.
  • Người nói có nhãn Speaker 1, Speaker 2… Bạn đọc nhãn trong transcript.speakers và trường speaker của từng đoạn. Định dạng text và srt thêm tiền tố Speaker 1: ; vtt dùng thẻ <v Speaker 1>.
{ "platform": "youtube", "url": "https://youtu.be/dQw4w9WgXcQ", "source": "stt", "diarize": true }

language

Để transcript1 tự chọn ngôn ngữ, giữ language là auto như mặc định. Bạn cũng có thể truyền mã ISO 639-1 gồm hai chữ cái, chẳng hạn en, de hoặc es.

  • Khi lấy phụ đề, language chọn ngôn ngữ của track. Giá trị auto chọn ngôn ngữ gốc của video.
  • Khi chạy speech-to-text, giá trị này là gợi ý ngôn ngữ gửi đến nhà cung cấp. Với auto, hệ thống tự nhận diện ngôn ngữ; từng đoạn có trường language riêng.

Trường language ở cấp object transcription cho biết ngôn ngữ chính của toàn bộ bản ghi.

Đọc nguồn và nội dung transcript

Đọc transcript_source để biết văn bản lấy từ đâu: youtube_captions, x_captions, tiktok_captions, bluesky_captions, dailymotion_captions, linkedin_captions hoặc speech_to_text. Nếu lấy từ phụ đề, caption_kind có thể là manual, auto_generated hoặc null. Giá trị null chỉ có nghĩa là chưa rõ nguồn gốc; đừng hiển thị thành phụ đề do người đăng tải lên.

youtube_captions, caption_kind manualyoutube_captions, caption_kind auto_generatedspeech_to_text
Cách chia đoạnMỗi cue phụ đề thành một đoạnMỗi cue phụ đề thành một đoạnTách đoạn khi đổi người nói, đổi ngôn ngữ, gặp dấu kết câu hoặc đủ 15 giây
Mốc thời gian từng từ qua include=wordsKhông có; words là nullCó thời điểm bắt đầu; thời điểm kết thúc là lúc từ tiếp theo bắt đầuCó thời điểm bắt đầu, kết thúc và confidence
Nhận diện người nóiKhôngKhôngCó nếu đặt diarize là true
Ngôn ngữTheo track phụ đềTheo track phụ đềXác định cho từng đoạn

Phụ đề YouTube giữ nguyên nội dung được đăng, kể cả thẻ như [Music]. Speech-to-text xử lý bản ghi tối đa 5 giờ. Dài hơn sẽ báo media_too_long.

Với phụ đề X (x_captions), TikTok, Bluesky, Dailymotion và LinkedIn, mỗi đoạn chỉ có mốc thời gian của cả đoạn. Gọi include=words vẫn nhận words: null, kể cả với phụ đề tự động. Các nguồn này cũng không nhận diện người nói. Cần mốc thời gian từng từ thì chọn source: "stt"; cần nhãn người nói thì đặt diarize: true cùng auto hoặc stt.

Tính phí thế nào?

Lấy phụ đề hay chạy speech-to-text đều tốn như nhau: một credit cho mỗi phút video hoặc audio, làm tròn lên. Bạn chỉ chọn cách lấy văn bản, không chọn mức giá khác. Xem cách tính phút và giới hạn.

Cập nhật lần cuối 20 tháng 10, 2026