Miért nem működik már a YouTube scraping?

Miért nem működik már a YouTube scraping?

Júl 10, 2026 web scraping youtube api dynamic content developer tools python

Miért nem működik a "Forrás megtekintése" YouTube-on?

Képzeld el a következő helyzetet: rákattintasz jobb gombbal egy YouTube videó oldalára, kiválasztod a "Forrás megtekintése" opciót, és azt várod, hogy ott lesz a videó címe, leírása, minden adat szépen előtted. Ehelyett egy óriási falnyi, összetömörített JavaScript kódot látsz, ahol a videó címét hiába keresed.

Ez nem hiba — ez szándékos működés. És ha megérted, miért van így, teljesen másképp állsz majd hozzá az adatkinyeréshez.

A modern web működése

A YouTube-hoz hasonló platformok — Twitter, Netflix, Instagram — mind Single Page Application (SPA) architektúrával működnek. A lényege: a szerver nem egy kész, teljes HTML oldalt küld neked, hanem csak egy vázat és egy hatalmas JavaScript csomagot. A böngésződ letölti ezt, majd futtatja a kódot, ami dinamikusan tölti be a tartalmat.

Tehát amikor a forráskódot nézed, a receptet látod — nem pedig a kész süteményt.

Miért csinálják ezt?

A YouTube frontendje a Google Polymer keretrendszerére épül, és API-kon keresztül kommunikál a háttérrendszerekkel. Ez az architektúra több szempontból is előnyös:

  • Gyorsabb betöltési idő érzékelése — a váz azonnal megjelenik, a tartalom utána érkezik
  • Hatékonyabb cache-elés — a JavaScript ritkábban változik, mint a tartalom
  • Méretarányosság — a frontend és backend egymástól függetlenül fejlődhet
  • Személyre szabás — a tartalom felhasználónként változhat újratöltés nélkül

Na de mi a helyzet azokkal, akik adatokat akarnak kinyerni? Nos, ez problémás.

YouTube adatok: a helyes megközelítés

Ha adatokra van szükséged, ne刮éold a forráskódot, hanem használd azokat az eszközöket, amiket a platform nyújt:

1. Hivatalos API

A YouTube Data API v3 strukturált hozzáférést biztosít szinte mindenhez:

  • Videó metaadatai (cím, leírás, bélyegképek)
  • Csatorna információk
  • Keresési eredmények
  • Playlist tartalmak
  • Statisztikák (megtekintések, lájkok, kommentek)

Google fiók kell és egy API kulcs a Google Cloud Console-ból. A kvóta límitek viszont elég szűkmarkúak ahhoz képest, amit a legtöbb projekt igényel.

import requests

API_KEY = "your_api_key_here"
VIDEO_ID = "zdJ9Tbm8ALg"

url = f"https://www.googleapis.com/youtube/v3/videos"
params = {
    "part": "snippet,statistics",
    "id": VIDEO_ID,
    "key": API_KEY
}

response = requests.get(url, params=params)
data = response.json()

video_title = data["items"][0]["snippet"]["title"]
views = data["items"][0]["statistics"]["viewCount"]
print(f"'{video_title}' — {views} megtekintés")

2. Közösségi library-k

Ha az API túl hivatalosnak tűnik, ott vannak a közösség által fejlesztett megoldások. A pytube videóletöltéshez, a youtube-transcript-api feliratok kinyeréséhez — ezek azért léteznek, mert a fejlesztőknek egyszerűbb hozzáférésre volt szükségük.

3. RSS feedek (igen, működik!)

A YouTube még mindig támogatja az RSS feedeket csatornákhoz. Ez az ősi módszer az API-k előttről. Nem minden metaadat érhető el, de alapvető monitoringra meglepően jól működik.

Mikor kell mégis scrapelni?

Előfordul, hogy az API nem adja meg, amire szükséged van, vagy a rate limitek túl szigorúak. Ilyenkor előfordulhat, hogy ténylegesen le kell renderelned az oldalt és scrapelned kell.

A modern megoldás a headless browser — vagyis egy böngésző látható ablak nélkül, ami képes JavaScript-et futtatni és visszaadni a renderelt HTML-t.

Playwright és Puppeteer a két domináns eszköz:

const { chromium } = require('playwright');

(async () => {
  const browser = await chromium.launch();
  const page = await browser.newPage();
  
  await page.goto('https://www.youtube.com/watch?v=zdJ9Tbm8ALg');
  
  // Várunk, amíg a tartalom betöltődik
  await page.waitForSelector('h1.ytd-video-primary-info-renderer');
  
  const title = await page.textContent('h1.ytd-video-primary-info-renderer');
  console.log('Videó címe:', title);
  
  await browser.close();
})();

Működik, de van néhány hátránya:

  • Lassabb, mint az API hívások
  • Bejöhetnek az anti-bot védelmek
  • Ha a YouTube megváltoztatja a frontendet, a kódod elromlik
  • Több erőforrást zabál

Végszó

Amikor legközelebb egy modern weboldalon a "Forrás megtekintése" gombra kattintasz és úgy érzed, értelmetlen krix-kraxot látsz, ne felejtsd el: a tartalom ott van — csak JavaScript tölti be dinamikusan. A platformok nagyon jó okokból fektettek ennyit az architektúrájukba.

Mint fejlesztők, a feladatunk nem az, hogy harcoljunk ezekkel a rendszerekkel, hanem az, hogy együttműködjünk velük. Használd az API-kat, amikor lehetséges, értsd meg, mikor válik szükségessé a scrapelés, és mindig tartsd tiszteletben a rate limiteket és a felhasználási feltételeket. A web barátságosabb, mint amilyennek kívülről tűnik.

Read in other languages:

RU BG EL CS UZ TR SV FI RO PT PL NB NL IT FR ES DE DA ZH-HANS EN