문서지원 링크와 변환 옵션
지원 링크와 변환 옵션
어떤 영상 링크를 보낼 수 있는지 확인하고, 자막이나 AI 텍스트 변환, 화자 분리, 언어를 설정하세요.
YouTube, X, TikTok, Instagram, Facebook, Bluesky의 영상 링크나 오디오·영상 파일로 변환 작업을 시작할 수 있어요. 그 밖에 지원하는 공개 녹화 영상과 URL 형식도 아래에서 확인하세요. 자막을 가져올지 음성을 변환할지는 source, 화자 분리는 diarize, 언어는 language로 설정해요. POST /v1/transcriptions의 본문에 넣는 필드이며, 모두 생략할 수 있어요.
지원 플랫폼
url에 영상 링크를 넣으면 API가 플랫폼을 알아내요. platform을 직접 지정할 수도 있지만, 링크의 플랫폼과 같아야 해요.
| 플랫폼 | 사용할 수 있는 링크 |
|---|---|
YouTube (youtube) | 아래의 YouTube URL 형식 표를 확인하세요. |
X (x) | x.com 또는 twitter.com의 영상 게시물. 예: https://x.com/user/status/1234567890 |
TikTok (tiktok) | tiktok.com의 영상 게시물. vm.tiktok.com, vt.tiktok.com, www.tiktok.com/t/ 단축 링크도 가능해요. |
Instagram (instagram) | instagram.com의 릴스와 영상 게시물. /reel/, /reels/, /p/, /tv/를 지원하며, 사용자명 뒤에 릴스나 게시물 경로가 오는 링크도 가능해요. |
Facebook (facebook) | watch 링크를 포함한 facebook.com의 영상·릴스 링크. fb.watch, /share/v/, /share/r/ 단축 링크도 가능해요. |
Bluesky (bluesky) | bsky.app의 영상 게시물. 예: https://bsky.app/profile/user.example/post/3l3w4b5c6d7e2 |
Twitch (twitch) | 방송이 끝난 VOD는 twitch.tv/videos/<id> 또는 /<channel>/v/<id> 형태예요. video 경로도 가능해요. 클립은 clips.twitch.tv/<slug>, twitch.tv/<channel>/clip/<slug>, /clip/<slug>를 지원해요. 지원 호스트는 twitch.tv, www, m, go, clips.twitch.tv예요. |
Dailymotion (dailymotion) | dailymotion.com/video/<id>와 그 뒤에 _title이 붙는 형식, /embed/video/<id>, dai.ly/<id>. www.dailymotion.com, touch.dailymotion.com도 가능해요. |
Pinterest (pinterest) | pinterest.com 또는 www.pinterest.com에 직접 올린 영상 핀. /pin/<id>/와 /pin/<slug>--<id>/에서 첫 번째 영상 블록을 사용해요. 외부 임베드, 이미지, 보드, pin.it, 지역별 도메인은 지원하지 않아요. |
LinkedIn (linkedin) | linkedin.com 또는 www.linkedin.com의 공개 영상 게시물. /posts/<slug>-<activity-id>-<four-character-suffix>와 /feed/update/urn:li:activity:<id>/를 지원해요. 프로필, Learning, 이벤트, lnkd.in 링크는 사용할 수 없어요. |
Snapchat Spotlight (snapchat) | snapchat.com 또는 www.snapchat.com의 /spotlight/<id> 영상. 스토리와 프로필은 지원하지 않아요. |
Twitch부터 Snapchat Spotlight까지 추가된 다섯 플랫폼에서는 HTTPS 링크만 받아요. URL에 인증 정보를 넣거나 별도 포트를 지정하면 안 돼요. 공개된 개별 녹화 영상만 가능하며 비공개·로그인 필수 게시물, 라이브·처리 중인 방송, 프로필, 피드, 컬렉션은 지원하지 않아요. 계정 쿠키도 보내지 않아요.
URL에 재생 시간을 넣어도 해당 구간만 잘라서 처리하지는 않아요. Twitch 클립과 Snapchat Spotlight의 media_id는 내부 형식을 알 수 없는 문자열일 수 있어요. URL에서 ID를 추측하지 말고 반환받은 값을 그대로 보관하세요.
X, TikTok, Instagram, Facebook, Bluesky에서도 공개 게시물만 사용할 수 있어요. 영상이 여러 개면 첫 번째 영상만 변환해요. 프로필, 스토리, 라이브 페이지, TikTok 사진 게시물은 대상이 아니에요. 로그인이 필요하면 login_required, 오디오 트랙이 없으면 no_audio로 작업이 실패해요. 어느 경우에도 크레딧을 차감하지 않아요.
YouTube, X, TikTok, Bluesky, Dailymotion, LinkedIn에서는 영상 원본 언어의 자막을 가져올 수 있어요. 실제로 사용할 수 있는 자막이 있는지는 영상마다 달라요. Instagram, Facebook, Twitch, Pinterest, Snapchat은 auto나 stt로 AI 음성 텍스트 변환(STT)을 사용하며, captions는 허용하지 않아요. 플랫폼이나 파일 업로드에 관계없이 실제로 측정한 길이에 같은 분당 요금을 적용해요.
단축 링크는 표에 있는 형식만 지원해요. 제출 시점에 게시물 ID를 알 수 없는 소셜 공유 링크는 이전 변환 작업과 연결할 수 없어요. 기존 스크립트를 재사용하려면 전체 게시물 링크를 보내세요.
| 자막 제공 플랫폼 | 지원 자막과 타임스탬프 |
|---|---|
| YouTube와 X | 영상에 있는 자막 트랙을 가져와요. 단어별 타임스탬프는 YouTube 자동 생성 자막에만 있어요. |
| TikTok | 플랫폼이 제공하는 VTT 또는 SRT 자막을 가져와요. 타임스탬프는 세그먼트 단위예요. |
| Bluesky | 지원 대상으로 신뢰하는 PDS에 직접 올린 영상의 자막만 가져와요. 임의의 연합 호스트, 인용 영상, 외부 영상은 지원하지 않아요. 타임스탬프는 세그먼트 단위예요. |
| Dailymotion | SRT 파일을 직접 가져오는 방식만 지원해요. 자막 플레이리스트는 지원하지 않아요. 타임스탬프는 세그먼트 단위이며, en-auto/fr-auto로 식별된 트랙의 종류는 auto_generated로 표시해요. |
| 플랫폼에 직접 올린 공개 영상 게시물의 VTT 자막을 가져와요. 타임스탬프는 세그먼트 단위예요. LinkedIn Learning은 지원하지 않아요. |
YouTube 링크 형식
YouTube 영상 주소는 url에 넣으세요. platform은 생략해도 되고 youtube로 지정해도 돼요. 아래 형식을 지원하며 www.는 있어도 없어도 돼요.
| 링크 종류 | 예시 |
|---|---|
| 일반 영상 | https://www.youtube.com/watch?v=dQw4w9WgXcQ |
| 단축 링크 | https://youtu.be/dQw4w9WgXcQ |
| Shorts | https://www.youtube.com/shorts/dQw4w9WgXcQ |
| 임베드 영상 | https://www.youtube.com/embed/dQw4w9WgXcQ |
| 라이브 경로 | https://www.youtube.com/live/dQw4w9WgXcQ |
| 모바일·음악 서비스 주소 | https://m.youtube.com/watch?v=dQw4w9WgXcQ, https://music.youtube.com/watch?v=dQw4w9WgXcQ |
t, list, si 같은 추가 쿼리 파라미터는 처리에 영향을 주지 않아요. 주소 형식이 달라도 같은 영상이면 하나의 영상으로 인식해요. 반드시 전체 URL을 보내세요. 11자리 영상 ID만 보내거나 채널·재생목록 전용 주소 등 지원하지 않는 링크를 보내면 422 invalid_url을 반환해요. 지원하지 않는 platform 값에는 422 unsupported_platform과 supported_platforms 목록을 반환해요.
영상 공개 범위는 공개 또는 일부 공개여야 해요. 비공개 영상은 media_private, 연령 제한 영상은 age_restricted, 진행 중인 라이브는 live_stream으로 실패해요. 보유한 파일을 변환하려면 파일 업로드를 이용하세요.
source
source로 기존 자막을 가져올지, 음성을 AI로 변환할지 선택하세요.
| 설정값 | 처리 방식 |
|---|---|
auto (기본값) | YouTube, X, TikTok, Bluesky, Dailymotion, LinkedIn에서는 영상 원본 언어의 자막을 우선 사용해요. 사용할 자막이 없으면 AI 음성 텍스트 변환(STT)을 실행해요. |
captions | 자막을 지원하는 플랫폼에서 자막만 가져와요. 오디오 다운로드나 AI 음성 텍스트 변환(STT)은 실행하지 않아요. 사용할 트랙이 없으면 no_captions로 실패하며 크레딧은 차감하지 않아요. 자막 내용 다운로드에 실패하면 fetch_failed를 반환해요. 자막을 지원하지 않는 플랫폼에서 이 옵션을 보내면 422 invalid_request를 반환해요. |
stt | 자막 유무와 관계없이 AI 음성 텍스트 변환(STT)을 실행해요. |
파일 업로드는 항상 음성 텍스트 변환(STT)을 사용해요. source에는 auto나 stt를 넣으세요. captions를 보내면 422 invalid_request를 반환해요.
자막은 요청한 언어와 맞아야 사용할 수 있어요. language가 auto이면 영상 원본 언어를 기준으로 골라요. YouTube에서는 업로더가 올린 자막이나 YouTube가 해당 언어로 자동 생성한 자막을 사용해요. 자동 번역 자막은 사용하지 않아요. 업로더가 올린 자막, 출처를 알 수 없는 자막, 자동 생성 자막 순으로 선택해요. 출처를 모르는 자막을 업로더가 올린 것으로 간주하면 안 돼요.
X에서는 제공되는 VTT 트랙을 사용해요. 자동 생성 자막도 세그먼트별 타임스탬프만 있으며 단어별 타임스탬프는 없어요. auto에서 자막을 사용할 수 없거나 내용을 파싱하지 못하면 STT로 전환할 수 있어요. 라우팅, 저장소, 코드 오류를 STT 전환으로 처리하지는 않아요. stt를 지정하면 처음부터 자막을 확인하지 않아요.
diarize
누가 말하는지 구분하려면 diarize를 켜세요. 기본값은 false예요.
- 화자 분리는 음성 텍스트 변환(STT)에서만 가능해요.
source가auto여도diarize: true를 넣으면 자막 대신 바로 음성을 변환해요. source: "captions"와diarize: true는 함께 쓸 수 없어요. 두 값을 같이 보내면422 invalid_request를 반환해요.- 화자는
Speaker 1,Speaker 2처럼 표시해요.transcript.speakers와 각 세그먼트의speaker필드에서 확인할 수 있어요.text,srt에서는 문장 앞에Speaker 1:을 붙이고,vtt에서는<v Speaker 1>화자 태그를 사용해요.
{ "platform": "youtube", "url": "https://youtu.be/dQw4w9WgXcQ", "source": "stt", "diarize": true }language
language에는 기본값인 auto를 쓰거나 en, de, es처럼 두 글자 ISO 639-1 언어 코드를 넣으세요.
- 자막을 가져올 때는 이 값으로 트랙의 언어를 골라요.
auto이면 영상 원본 언어를 사용해요. - 음성 텍스트 변환(STT)에서는 STT 제공자가 참고할 언어 힌트로 보내요.
auto이면 언어를 자동 감지해요. 각 세그먼트의language에는 해당 구간의 언어가 들어가요.
작업 객체의 language에는 영상에서 주로 사용하는 언어가 들어가요.
스크립트 출처와 응답 데이터
스크립트의 출처는 transcript_source로 확인하세요. youtube_captions, x_captions, tiktok_captions, bluesky_captions, dailymotion_captions, linkedin_captions, speech_to_text 중 하나예요. 자막 종류를 나타내는 caption_kind는 manual, auto_generated 또는 출처를 알 수 없다는 뜻의 null이에요. null인 자막을 업로더가 올린 자막으로 표시하지 마세요.
youtube_captions, caption_kind manual | youtube_captions, caption_kind auto_generated | speech_to_text | |
|---|---|---|---|
| 세그먼트 구분 | 자막 큐 단위 | 자막 큐 단위 | 화자나 언어가 바뀌거나 문장이 끝나면 나눠요. 한 세그먼트는 최대 15초예요. |
include=words로 받는 단어별 타임스탬프 | 없음(words는 null) | 단어 시작 시각. 다음 단어가 시작하는 시각을 현재 단어의 끝으로 사용해요. | 각 단어의 시작·끝 시각과 confidence |
| 화자 분리 | 미지원 | 미지원 | diarize가 true일 때 지원 |
| 언어 정보 | 자막 트랙의 언어 | 자막 트랙의 언어 | 각 세그먼트의 언어 |
YouTube 자막은 [Music] 같은 태그까지 원문 그대로 가져와요. 음성 텍스트 변환(STT)은 최대 5시간까지 처리해요. 이보다 길면 media_too_long으로 실패해요.
X(x_captions), TikTok, Bluesky, Dailymotion, LinkedIn 자막의 타임스탬프는 세그먼트 단위예요. 자동 생성 자막도 include=words로 조회하면 세그먼트마다 words: null이 나오고, 화자 분리도 지원하지 않아요. AI로 단어별 타임스탬프를 만들려면 source: "stt"를 지정하세요. 화자 분리는 auto나 stt에 diarize: true를 함께 넣으면 돼요.
사용 요금
자막을 가져오든 음성 텍스트 변환(STT)을 하든 요금은 같아요. 미디어 길이를 분 단위로 올림해 1분당 1크레딧을 차감해요. 변환 방식을 바꿔도 분당 요금은 달라지지 않아요. 자세한 내용은 요금제와 사용 한도를 확인하세요.
최근 업데이트 2026년 10월 20일