HomeBlogTranscribePlansAPI Keys

yt-dlp Otsikot vs transkriptio API: Kumpi käyttää

Jaettu näkymä yt-dlp otsikon lataus komentona puhtaan JSON-transkriptio API-vastauksen vieressä

yt-dlp voi ladata otsikkoja pohjimmiltaan mille tahansa YouTube-videolle, ja jos olet käyttänyt sitä media-latauksia varten, olet todennäköisesti jo löytänyt liput. Se on aito loistava työkalu — pidän sitä asennettuna kaikkialla. Mutta "voi ladata otsikoita" ja "on oikea tapa saada transkriptiot palvelussa" ovat eri väitteet, ja olen poltettu sekoittamalla ne. Tässä on mitä kukin lähestyminen todella näyttää, mukaan lukien puhdistus vaihe, jonka kukaan ei varoita sinua.

yt-dlp tapa, pää päähän

Automaattisesti luotujen englannin otsikoiden noutaminen ilman videon lataamista:

yt-dlp --write-auto-sub --sub-lang en --skip-download \
  -o "%(id)s" "https://www.youtube.com/watch?v=VIDEO_ID"

(Käytä --write-sub sen sijaan ihmisen ladattuihin raita, tai molempia lippuja yhdessä.) Tämä pudottaa VIDEO_ID.en.vtt tiedoston. Avaa se ja näet miksi et ole valmis:

WEBVTT
Kind: captions
Language: en

00:00:00.320 --> 00:00:02.879
so today we're going to look at
00:00:01.760 --> 00:00:04.560
so today we're going to look at
how youtube handles

Auto-subs ovat "vierivät" otsikot — jokainen vihje toistaa edellisen rivin, joten naiivi riisuminen antaa sinulle jokaisen lauseen kahdesti. Kaikki, jotka menevät tälle tielle, päätyvät kirjoittamaan jonkin version tämän puhdistuksesta:

import re, pathlib

lines = []
for line in pathlib.Path("VIDEO_ID.en.vtt").read_text().splitlines():
    if "-->" in line or line.startswith(("WEBVTT", "Kind:", "Language:")) or not line.strip():
        continue
    line = re.sub(r"<[^>]+>", "", line).strip()   # strip inline timing tags
    if not lines or line != lines[-1]:            # collapse rolling duplicates
        lines.append(line)
text = " ".join(lines)

Komento, aliproces käsittely, tiedosto I/O, dedupe — kutsu se 40 riviä liimaa ennen kuin sinulla on tavallista tekstiä.

Missä yt-dlp on oikea vastaus

Missä se sattuu palvelimella

Kolme erillistä huollon taakkaa ilmestyy hetkellä yt-dlp siirtyy taustalle:

API-tapa

Isännöity-päätepiste versio koko putkesta edellä:

curl -s "https://youtube2text.org/api/transcribe?url=VIDEO_ID" \
  -H "x-api-key: yt_YOUR_KEY"

Palauttaa JSON:ia — {"result": {"videoId", "title", "pubDate", "content", ...}} — jo deduplicated tavallinen teksti, jäsennellyt virheet (TRANSCRIPT_UNAVAILABLE kun otsikoita ei ole olemassa, stderr arkeologian sijaan). Jaettu demonäppäin on yhden kutsun päässä (curl -s https://youtube2text.org/api/demo-key, 5 videota/kuukausi per IP); täydellinen pika-aloitus on transkriptioiden poimimisessa curllla.

Rehellinen alaviite

Molemmat lähestymistavat hakevat samat otsikot samasta paikasta, ja molemmat joutuvat käsittelemään YouTuben, jotka eivät halua automaattisia liikennettä. yt-dlp tekee sen ongelmaksesi — kunnossa kannettavalla, proxy-projekti palvelimella. Isännöity API tekee sen palveluntarjoajan ongelma: youtube2text.org reitittää noudot kierrätettävien asuntojen välityspalvelimien läpi palvelinpuolella, mikä on tarkalleen osa, jonka et voi helposti replikoida datakeskuksen IP:stä. Et maksa transkriptiosta; maksat sen sijaan, että et ole toimimassa sitä.

Minun jakauma: yt-dlp arkistoille ja kertaluontoiselle omalla koneellani, API:lla kaikelle, joka ajaa valvomatta. Jos se vastaa sinun tilannetta, avaimet ovat youtube2text.org/app/keys — Google kirjautuminen, ilmainen 5/kuukausi taso, maksullinen 5,99 dollarista.