~/social/youtube-transcript-scraper

YouTube Subtitle & Transcript Scraper — JSON, SRT, VTT, LLM

동영상, Shorts, 재생목록, 채널에서 YouTube 자막과 스크립트를 JSON, SRT, VTT, 일반 텍스트, 또는 클린한 LLM-레디 텍스트로 추출합니다. 100개 이상의 언어, 풍부한 메타데이터, API 키 불필요 — 추출 실패 시 과금되지 않습니다.

미디어 TypeScriptInnerTube 글로벌
proooxy/youtube-transcript-scraper — 사양
카테고리social / 미디어
언어TypeScript
스택TypeScript, InnerTube
마켓글로벌
출력클린한 RAG-레디 JSON

주요 기능

하나의 입력으로 동영상, Shorts, youtu.be 링크, 재생목록, 채널을 처리 — 한 번의 실행에서 혼합 가능

5가지 출력 포맷 — JSON(타임스탬프 포함), SRT, VTT, 일반 텍스트, LLM-레디([Music], [Applause], 화자 레이블 제거)

100개 이상의 언어를 우선순위 목록으로 지정 가능, 자동 생성 자막 폴백 켜고 끄기 가능

풍부한 메타데이터 — 제목, 채널, 설명, 게시일, 조회수, 썸네일, 길이, 이용 가능한 언어

maxVideos 상한과 1~10 동시성으로 재생목록·채널 전체를 배치 처리

레지덴셜 프록시 지원과 선택적 쿠키로 봇 체크 차단 감소

다층 추출 — InnerTube 클라이언트 전반에 최대 9단계 폴백, 최후 수단으로 yt-dlp PO-token 사용

서킷 브레이커와 항목별 에러 처리로 대규모 배치도 안정적으로 실행

활용 사례

  • 영상 음성으로 RAG나 파인튜닝 데이터셋을 구축하는 AI/ML 팀(LLM-레디 텍스트 출력)
  • 스크립트를 블로그 게시물, 쇼노트, 소셜 캡션으로 재활용하는 콘텐츠 팀
  • 색인 생성과 키워드 리서치를 위해 검색 가능한 영상 텍스트를 추출하는 SEO 마케터
  • 표준 SRT/VTT 자막 파일이 필요한 편집자 및 퍼블리셔
  • 채널이나 재생목록 전체에서 스크립트를 일괄 수집하는 연구자
  • YouTube API 키 없이 구조화되고 타임스탬프가 포함된 캡션이 필요한 개발자

입력 파라미터

파라미터타입필수설명
urlsarray선택YouTube URL 또는 단독 ID — 동영상, Shorts, youtu.be 링크, 재생목록, 채널. 실행 시 필수.
outputFormatstring선택스크립트 포맷: json, srt, vtt, text, llm 중 선택(기본값: json).
languagesarray선택우선순위 순서의 선호 자막 언어, ISO 639-1 코드(기본값: en).
includeAutoGeneratedboolean선택수동 자막이 없을 때 자동 생성 자막으로 대체(기본값: true).
maxVideosnumber선택실행당 처리할 동영상 수 상한, 재생목록/채널에 적용(기본값: 0 = 무제한).
maxConcurrencynumber선택동시에 처리할 동영상 수, 1~10(기본값: 3).
proxyConfigurationobject선택프록시 설정. 기본값은 미국으로 고정된 Apify Residential.
youtubeCookiesstring선택봇 체크 차단을 줄이기 위한 선택적 YouTube 쿠키(Cookie 헤더 또는 cookies.txt).

출력 예시

 1{
 2  "videoId": "dQw4w9WgXcQ",
 3  "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
 4  "title": "Rick Astley - Never Gonna Give You Up (Official Video)",
 5  "channelName": "Rick Astley",
 6  "channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
 7  "publishDate": "2009-10-25",
 8  "viewCount": 1761003712,
 9  "availableLanguages": ["en", "de-DE", "ja", "pt-BR", "es-419"],
10  "language": "en",
11  "isAutoGenerated": false,
12  "duration": 213,
13  "wordCount": 487,
14  "segmentCount": 61,
15  "text": "We're no strangers to love, you know the rules and so do I...",
16  "segments": [{ "text": "We're no strangers to love", "start": 18.64, "end": 21.88 }],
17  "error": null
18}

요금

이벤트당 과금: 성공적으로 추출된 스크립트마다 한 번씩 청구됩니다 — 실패한 동영상은 절대 과금되지 않습니다. 채널이나 재생목록 전체를 입력해도 실제로 받은 자막에 대해서만 비용이 발생합니다.

  • RAG와 파인튜닝에는 outputFormat: llm을 사용하세요 — 비음성 표기가 제거되어 임베딩에 클린한 텍스트만 전달됩니다.
  • 레지덴셜 프록시를 항상 켜두세요. YouTube는 데이터센터 IP를 공격적으로 차단합니다 — 액터가 기본값을 미국 레지덴셜로 설정해둔 데에는 이유가 있습니다.
  • 대규모 작업은 maxConcurrency를 1~3으로 시작해 점차 올리세요 — 대형 채널 크롤링에서 동시성이 높으면 레이트 리밋 위험이 커집니다.

자주 묻는 질문

YouTube API 키나 로그인이 필요한가요?
아니요. 액터는 캡션을 직접 추출합니다 — YouTube Data API 키도 로그인도 필요 없습니다. 일부 동영상에서 'Sign in to confirm you're not a bot' 차단을 줄이기 위해 선택적으로 쿠키를 입력할 수 있습니다.
어떤 언어와 캡션 유형을 지원하나요?
100개 이상의 언어를 지원합니다. 우선순위 순서로 정렬된 ISO 639-1 코드 목록을 제공하세요(기본값: en). includeAutoGenerated를 비활성화하지 않는 한, 액터는 수동 생성 캡션을 우선하고 자동 생성 캡션으로 대체합니다.
추출에 실패한 동영상도 과금되나요?
아니요. 과금은 스크립트 추출 이벤트당 이루어지며, 스크립트가 성공적으로 저장된 후에만 청구됩니다. 실패한 동영상은 error 필드와 함께 출력에 나타나며 과금되지 않습니다.
RAG를 위한 클린한 LLM-레디 텍스트를 받을 수 있나요?
네. outputFormat을 'llm'으로 설정하면 [Music]/[Applause] 표기와 화자 레이블이 제거되어, 임베딩과 파인튜닝에 적합한 클린한 텍스트가 생성됩니다.

~/social 관련 도구

YouTube Subtitle & Transcript Scraper — JSON, SRT, VTT, LLM 실행하기, 또는 맞춤 제작 요청

몇 분 안에 Apify에서 추출을 시작하거나, 원하는 소스와 스키마에 딱 맞는 맞춤 스크래퍼와 RAG 파이프라인 제작을 의뢰하세요.

Apify에서 실행 맞춤 데이터 요청