YouTube ist die am zweithäufigsten besuchte Website im Web, und die Daten, die es öffentlich zeigt, sind eine Forschungsschatzkammer für alle, die an Content und SEO arbeiten. Die Titel, die für eine Suchanfrage ranken, die Kanäle, die ein Thema besitzen, die Aufrufzahlen, die die Nachfrage signalisieren, die Veröffentlichungsdaten, die zeigen, wie frisch die führenden Ergebnisse sind: all das ist auf einer öffentlichen Ergebnisseite sichtbar, und all das sagt Ihnen, worauf eine Zielgruppe tatsächlich klickt. Diese Anleitung zeigt Ihnen, wie Sie öffentliche YouTube-Daten mit Python scrapen und in Keyword- und Content-Recherche umwandeln, auf deren Basis Sie handeln können.

Um es von Anfang an klar zu sagen: Alles hier ist auf öffentliche Daten von öffentlichen Such- und Videoseiten beschränkt. Sie sammeln Videotitel, Kanalnamen, Aufrufzahlen, Veröffentlichungsdaten und Video-Links. Sie berühren nichts hinter einem Login, keine individuellen Nutzerkommentare, keine privaten Playlists und keine personenbezogenen Daten von Zuschauern. Wenn Ihr Projekt sanktionierten, strukturierten Zugang in großem Maßstab benötigt, ist die offizielle YouTube Data API das richtige Werkzeug, und der Abschnitt zur Rechtmäßigkeit am Ende erklärt warum. Dieser Artikel ergänzt unsere tiefgehende Anleitung zum YouTube-Kanal-Scraper; hier liegt der Fokus auf der Such-und-Video-Schicht für die Optimierungsrecherche.

Was Sie bauen werden

Ein kleines Python-Skript, das eine öffentliche YouTube-Suchanfrage oder Video-URL entgegennimmt, die vollständig gerenderte Seite über die Crawling API mit einem JavaScript-Token abruft und eine Handvoll öffentlicher, nicht-personenbezogener Felder für jedes Ergebnis parst:

  • Titel der Videotitel, der Ihnen zeigt, wie ein Thema gerahmt wird, um zu ranken und Klicks zu erhalten.
  • Kanal der Name des Kanals, der das Video veröffentlicht hat, nützlich, um zu erkennen, wer ein Thema besitzt.
  • Aufrufe die öffentliche Aufrufzahl, ein grober Nachfrageindikator für ein Keyword oder ein Thema.
  • Veröffentlichungsdatum das relative oder absolute Upload-Datum, das zeigt, wie frisch die rankenden Ergebnisse sind.
  • Link die kanonische Watch-URL für jedes Video, damit Sie es später erneut aufrufen oder anreichern können.

Beachten Sie, was absichtlich fehlt: keine Kommentator-Handles, keine Subscriber-only-Inhalte, keine personenbezogenen Daten von Zuschauern. Sie sammeln aggregierte Signale über Inhalte, keine Profile von Personen.

Warum ein einfacher Request bei YouTube scheitert

Fordern Sie eine YouTube-Such-URL mit einem einfachen HTTP-Client an und Sie erhalten eine Antwort, die technisch gesehen ein Erfolg ist und praktisch leer ist. YouTube rendert seine Ergebnisse clientseitig: das anfängliche HTML ist eine dünne Hülle, und die eigentliche Liste der Videos erscheint erst nachdem das JavaScript der Seite in einem Browser läuft und die Ergebnisse hydratisiert. Dazu beobachtet YouTube automatisierten Traffic. Datacenter-IP-Bereiche, fehlendes Browser-Verhalten und repetitive Anfragemuster werden gut vor dem Laden der interessanten Inhalte herausgefordert oder ratebegrenzt.

Ein funktionierender YouTube-Datenscraper benötigt also zwei Dinge in derselben Anfrage: einen echten Browser, der die Seite rendert, und eine IP, die die Plattform als normalen Besucher liest. Sie können das selbst mit einem Headless-Browser und einem Pool von rotierenden Residential-Proxies zusammensetzen, aber diesen Stack gesund zu halten ist der Großteil der Arbeit. Die Crawling API faltet beides in einen Aufruf: Sie senden eine URL mit einem JavaScript-Token, sie rendert die Seite hinter einer vertrauenswürdigen Residential-IP und gibt fertiges HTML zurück, das Sie parsen können. Für den Hintergrund, warum Rendering wichtig ist, lesen Sie unseren Leitfaden zur Crawlung von JavaScript-Websites.

Warum das JS-Token

Crawlbase bietet zwei Token-Typen an. Das normale Token ruft statisches HTML ab; das JavaScript-Token (JS-Token) rendert die Seite zuerst in einem echten Browser. YouTube-Such- und Videoseiten werden clientseitig gerendert, also benötigen Sie hier das JS-Token. Das normale Token gibt dieselbe Hülle zurück, die ein einfacher Abruf liefern würde, ohne etwas Nützliches zum Parsen.

Voraussetzungen

Einige Dinge müssen zuerst eingerichtet sein. Keines davon dauert lange.

Python-Grundkenntnisse. Sie sollten mit dem Ausführen eines Skripts und dem Installieren von Paketen mit pip vertraut sein. Falls HTML-Parsing neu für Sie ist, behandelt unsere Einführung zu BeautifulSoup in Python die Extraktionsseite.

Python 3.8 oder höher. Prüfen Sie mit python --version. Falls Sie es nicht haben, installieren Sie es von python.org.

Ein Crawlbase-Konto und JS-Token. Melden Sie sich an, öffnen Sie Ihr Dashboard und kopieren Sie Ihr JavaScript-Token (JS-Token). Der kostenlose Tarif umfasst bis zu 20.000 Anfragen und Sie zahlen nur für erfolgreiche, was für die Recherche-Läufe in dieser Anleitung mehr als ausreichend ist. Behandeln Sie das Token wie ein Passwort und halten Sie es außerhalb der Versionsverwaltung.

Das Projekt einrichten

Erstellen Sie eine isolierte virtuelle Umgebung und installieren Sie dann die Bibliotheken, die der Scraper benötigt.

bash
python --version

python -m venv youtube_env
source youtube_env/bin/activate

pip install crawlbase beautifulsoup4

Unter Windows aktivieren Sie mit youtube_env\Scripts\activate statt der source-Zeile. Zwei Abhängigkeiten erledigen die Arbeit: crawlbase ist der offizielle Client für die Crawling API, und beautifulsoup4 analysiert das zurückgegebene HTML, sodass Sie einzelne Felder per Selektor extrahieren können. Die Standardbibliotheksmodule json und csv übernehmen den Export, sodass dafür nichts zusätzliches installiert werden muss.

Schritt 1: Eine gerenderte Suchseite abrufen

Beginnen Sie damit, die fertige Seite zu bekommen. Importieren Sie CrawlingAPI, initialisieren Sie sie mit Ihrem JS-Token und fordern Sie eine öffentliche Suchergebnis-URL an. Bauen Sie die Abfrage in den Standard-Pfad results?search_query= und prüfen Sie den Status-Code vor dem Parsen, damit Fehler laut statt still bleiben.

python
from urllib.parse import quote_plus
from crawlbase import CrawlingAPI

api = CrawlingAPI({"token": "YOUR_CRAWLBASE_TOKEN"})

def crawl(page_url):
    options = {"ajax_wait": "true", "page_wait": 5000}
    response = api.get(page_url, options)
    if response["status_code"] == 200:
        return response["body"].decode("utf-8")
    print(f"Request failed: {response['status_code']}")
    return None

def search_url(query):
    return f"https://www.youtube.com/results?search_query={quote_plus(query)}"

if __name__ == "__main__":
    query = "data scraping tutorial"
    html = crawl(search_url(query))
    print(html[:500] if html else "No HTML returned")

Die zwei Wait-Optionen sind wichtig für ein clientseitig gerendertes Ziel. ajax_wait weist die API an, auf das Fertigladen asynchroner Inhalte zu warten, und page_wait hält für eine feste Anzahl Millisekunden nach dem Laden, damit die spät rendernde Ergebnisliste erscheint, bevor die Seite erfasst wird. Fünf Sekunden ist ein vernünftiger Ausgangspunkt; erhöhen Sie ihn, wenn Ergebnisse leer zurückkommen. Die Abfrage spiegelt das Legacy-Beispiel ("data scraping tutorial") wider, sodass Sie die Ausgabe direkt vergleichen können. Führen Sie das Skript aus und Sie sollten echtes YouTube-Markup sehen, was bestätigt, dass das Rendering funktioniert, bevor Sie einen einzigen Selektor schreiben.

Crawlbase Crawling API

YouTube benötigt eine gerenderte Ergebnisseite hinter einer vertrauenswürdigen IP, in einem Aufruf. Die Crawling API nimmt ein JS-Token, führt die Seite in einem echten Browser aus, rotiert serverseitig durch Residential-IPs und gibt fertiges HTML zurück, sodass Sie weder einen eigenen Headless-Browser-Pool noch einen Proxy-Pool betreiben müssen. Testen Sie es zuerst mit einer öffentlichen Suchanfrage im kostenlosen Tarif.

Schritt 2: Die öffentlichen Felder parsen

Mit gerendertem HTML in der Hand ist das stabilste Signal auf einer YouTube-Seite das eingebettete ytInitialData-JSON-Objekt, das die Seite mit ihren Skripten ausliefert. Es enthält dieselben Felder, die YouTube verwendet, um die Ergebnisliste zu rendern: Titel, Kanalnamen, Aufrufzahl-Text, Veröffentlichungszeit-Text und Video-IDs. Das Parsen dieses Objekts ist weitaus beständiger als das Verfolgen tief verschachtelter, häufig umbenannter CSS-Klassen. Laden Sie das HTML in BeautifulSoup, extrahieren Sie das Skript, das ytInitialData definiert, und durchsuchen Sie es nach Video-Renderern.

python
import json
import re
from bs4 import BeautifulSoup

def load_initial_data(html):
    soup = BeautifulSoup(html, "html.parser")
    for script in soup.find_all("script"):
        text = script.string or ""
        if "ytInitialData" in text:
            match = re.search(r"ytInitialData\s*=\s*(\{.*?\});", text, re.DOTALL)
            if match:
                return json.loads(match.group(1))
    return {}

def text_of(node):
    if not node:
        return None
    if "simpleText" in node:
        return node["simpleText"]
    runs = node.get("runs", [])
    return "".join(r["text"] for r in runs) if runs else None

Der Helfer load_initial_data isoliert das JSON-Objekt mit einem non-greedy Regex und parst es. Der Helfer text_of verarbeitet YouTubes zwei Textformen: Einige Felder sind ein einfacher simpleText-String, andere sind eine Liste von runs, die Sie zusammenfügen. Mit diesen zwei Helfern wird das Extrahieren jedes Videos zu einem einfachen Durchlaufen der Such-Renderer.

Schritt 3: Einen Datensatz pro Video extrahieren

YouTube verschachtelt Suchergebnisse unter einem langen Pfad von Abschnitts- und Element-Renderern. Jedes abspielbare Ergebnis ist ein videoRenderer, der den Titel, den Kanalnamen (ownerText oder longBylineText), den viewCountText, den publishedTimeText und die videoId enthält. Durchlaufen Sie die Struktur, sammeln Sie jeden videoRenderer und ordnen Sie jeden einem flachen Datensatz zu.

python
def find_video_renderers(node, found):
    if isinstance(node, dict):
        if "videoRenderer" in node:
            found.append(node["videoRenderer"])
        for value in node.values():
            find_video_renderers(value, found)
    elif isinstance(node, list):
        for item in node:
            find_video_renderers(item, found)
    return found

def parse_search(html):
    data = load_initial_data(html)
    renderers = find_video_renderers(data, [])
    results = []
    for v in renderers:
        video_id = v.get("videoId")
        if not video_id:
            continue
        channel = text_of(v.get("ownerText")) or text_of(v.get("longBylineText"))
        results.append({
            "title": text_of(v.get("title")),
            "channel": channel,
            "views": text_of(v.get("viewCountText")),
            "published": text_of(v.get("publishedTimeText")),
            "link": f"https://www.youtube.com/watch?v={video_id}",
        })
    return results

Der rekursive find_video_renderers-Durchlauf vermeidet das Hardcoding des genauen Verschachtelungspfads, den YouTube von Zeit zu Zeit neu ordnet; er sammelt einfach jeden videoRenderer, wo immer er erscheint. Jeder Datensatz enthält genau die fünf öffentlichen Felder, die Sie zu sammeln beabsichtigt hatten: Titel, Kanal, Aufrufe, Veröffentlichungsdatum und Link. Das sind Content- und Nachfragesignale, keine personenbezogenen Daten über Zuschauer.

Selektoren driften

YouTube ändert sein Markup und interne Feldnamen ohne Vorankündigung, weshalb dieser Code auf das ytInitialData-Objekt und Renderer-Namen setzt statt auf spröde verschachtelte CSS-Klassen. Wenn ein Feld als None zurückkommt, prüfen Sie die Live-Seite erneut in den Entwicklertools Ihres Browsers und aktualisieren Sie den Schlüssel. Regelmäßige Pflege ist für jeden Produktions-Scraper normal, kein Zeichen, dass etwas kaputt ist.

Schritt 4: Alles zusammensetzen und JSON und CSV exportieren

Verbinden Sie nun Abruf, Parsen und Export zu einem ausführbaren Skript. Es führt eine Liste von Recherche-Abfragen aus, sammelt die öffentlichen Felder für jede und schreibt sowohl eine JSON-Datei als auch eine CSV-Datei, sodass die Daten direkt in eine Tabellenkalkulation oder ein Notebook fallen.

python
import csv
import json
import time
from urllib.parse import quote_plus
from crawlbase import CrawlingAPI

api = CrawlingAPI({"token": "YOUR_CRAWLBASE_TOKEN"})

def main():
    queries = ["data scraping tutorial", "python web scraping"]
    rows = []
    for query in queries:
        html = crawl(search_url(query))
        if not html:
            continue
        for record in parse_search(html)[:10]:
            record["query"] = query
            rows.append(record)
        time.sleep(3)

    with open("youtube_research.json", "w", encoding="utf-8") as f:
        json.dump(rows, f, indent=2, ensure_ascii=False)

    fields = ["query", "title", "channel", "views", "published", "link"]
    with open("youtube_research.csv", "w", newline="", encoding="utf-8") as f:
        writer = csv.DictWriter(f, fieldnames=fields)
        writer.writeheader()
        writer.writerows(rows)

    print(f"Saved {len(rows)} videos across {len(queries)} queries")

if __name__ == "__main__":
    main()

Das time.sleep(3) zwischen Abfragen ist keine Dekoration. Das Taktieren ist der wichtigste einzelne Faktor dafür, ob ein Lauf gesund bleibt, und wir kommen darauf zurück. Der Slice [:10] spiegelt die Top-10-Ergebnisse wider, die das Legacy-Skript ausgegeben hat, und hält die Demo fokussiert. Kombinieren Sie das mit den früheren Funktionen crawl, search_url und parse_search in einer Datei und es läuft von Ende zu Ende.

Wie die Ausgabe aussieht

Führen Sie das vollständige Skript aus und Sie erhalten einen sauberen Datensatz pro Video, bereit zum Sortieren nach Aufrufen, Gruppieren nach Kanal oder Durchsuchen nach den Titelmustern, die eine Abfrage gewinnen.

json
[
  {
    "title": "Web Scraping Tutorial | Data Scraping from Websites to Excel",
    "channel": "Data Analytics",
    "views": "1.2M views",
    "published": "2 years ago",
    "link": "https://www.youtube.com/watch?v=aClnnoQK9G0",
    "query": "data scraping tutorial"
  },
  {
    "title": "Beginners Guide To Web Scraping with Python",
    "channel": "Coding Channel",
    "views": "480K views",
    "published": "1 year ago",
    "link": "https://www.youtube.com/watch?v=QhD015WUMxE",
    "query": "data scraping tutorial"
  }
]

Die Aufrufzahlen und Veröffentlichungszeit-Strings kommen direkt von YouTube als Anzeigetext ("1.2M views", "2 years ago"). Normalisieren Sie sie für die Analyse in einem späteren Schritt: Entfernen Sie "views" und expandieren Sie die M- und K-Suffixe in Integer, und konvertieren Sie relative Daten in ungefähre absolute. Das Behalten der rohen Strings im Export bedeutet, dass Sie niemals das ursprüngliche Signal verlieren.

Die Daten in Content- und SEO-Recherche umwandeln

Der Zweck dieses Scrapes sind nicht die rohen Zeilen, sondern was sie Ihnen über ein Thema sagen. Einige praktische Auswertungen:

  • Titelmuster, die ranken. Gruppieren Sie die Top-Ergebnisse pro Abfrage und schauen Sie, wie die Gewinnertitel formuliert sind: die Modifikatoren, die Klammern, die Zahlen, das Versprechen. Das ist die Sprache, auf die eine Zielgruppe für dieses Keyword klickt.
  • Nachfrage nach Aufrufzahl. Sortieren Sie nach Aufrufen, um zu sehen, welche Unterthemen die meiste Aufmerksamkeit ziehen. Hohe Aufrufzahlen bei älteren Videos ohne neueren Konkurrenten signalisieren oft eine Öffnung für frische Inhalte.
  • Aktualitätslücken. Die Spalte mit dem Veröffentlichungsdatum zeigt, wie alt die rankenden Ergebnisse sind. Eine Abfrage, die von mehrere Jahre alten Videos dominiert wird, ist ein Kandidat für eine aktuelle Herangehensweise.
  • Themenbesitz. Zu zählen, wie oft jeder Kanal über Ihre Abfragen hinweg erscheint, zeigt, wer ein Thema bereits besitzt, was sowohl die Wettbewerbsanalyse als auch Partnerschaftsideen informiert.

Das passt natürlich zu Ihrer breiteren Keyword-Arbeit. Wenn Sie eine Recherche-Pipeline aufbauen, decken unsere Leitfäden zur Nutzung von Daten zur SEO-Verbesserung und zum Extrahieren und Analysieren von Google-SEO-Daten ab, wie man eine solche Quelle in ein vollständiges Bild einfügt.

Skalierung und Paginierung

Eine Suchseite gibt die erste Ergebnis-Charge zurück, was für die Recherche meist ausreicht. Wenn Sie mehr Tiefe benötigen, führen Sie eine breitere Menge von Abfragen aus statt zu versuchen, eine einzelne zu paginieren: eine Liste verwandter Keywords gibt Ihnen breitere Abdeckung als das Durchscrollen eines Ergebnissatzes und bildet besser ab, wie Sie tatsächlich Inhalte planen. Um ein spezifisches Video anzureichern, rufen Sie seine Watch-URL mit derselben crawl-Funktion ab und parsen seine Seite für die Beschreibung und genaue Metadaten, wiederum mit dem eingebetteten JSON statt spröder Selektoren.

Halten Sie das Volumen proportional zur Forschungsfrage. Sie brauchen selten jedes Ergebnis für eine Abfrage; die Top-Ergebnisse tragen die meisten Signale, und ein kleiner, gut gewählter Satz von Abfragen schlägt ein erschöpfendes Crawlen sowohl für die Qualität als auch für eine gute Nutzung.

Ungeblockt bleiben

Selbst mit dem Rendering durch die Crawling API beobachtet YouTube scraperförmigen Traffic. Einige Gewohnheiten halten einen Lauf gesund, und sie gelten für jedes stark verteidigtes Ziel.

  • Anfragen takten. Seiten in einer engen Schleife zu hämmern ist der schnellste Weg zur Drosselung. Fügen Sie echte Verzögerungen hinzu, wie im time.sleep oben, und widerstehen Sie dem Drang, aggressiv zu parallelisieren.
  • Auf Rotation setzen. Ein Pool von Residential-IPs verteilt Anfragen über viele reale Benutzeradressen, sodass keine einzelne ein Rate-Limit auslöst. Die Crawling API erledigt das für Sie; wenn Sie Ihren eigenen Stack aufbauen, ist das der Teil, den Sie richtig machen müssen.
  • Statuscodes lesen. Ein Lauf, der anfängt, Herausforderungen oder Fehler zurückzugeben, sagt Ihnen, dass die aktuelle Rate oder IP-Ebene nicht mehr ausreicht. Gehen Sie zurück statt härter zu drücken.
  • Volumen niedrig und Abfragen variiert halten. Content-Recherche erfordert kein erschöpfendes Crawlen von YouTube. Sampeln Sie die wichtigen Abfragen und hören Sie auf.

Für das breitere Playbook lesen Sie unseren Leitfaden dazu, wie man Websites scrapt ohne gesperrt zu werden, und die Vertiefung zum Scrapen von JavaScript-Seiten mit Python.

Das ist der Abschnitt, den Sie lesen sollten, bevor Sie Produktionscode schreiben. YouTube gehört Google, und seine Nutzungsbedingungen beschränken den automatisierten Zugriff und setzen klare Grenzen für das Sammeln von Daten von der Plattform. Automatisiertes Scraping kann gegen diese Bedingungen verstoßen, unabhängig davon, wie sorgfältig Ihre Werkzeuge sind, und keiner der obigen Codes ändert das. Er macht nur den technischen Teil funktionsfähig. Lesen Sie YouTubes Nutzungsbedingungen und seine robots.txt, respektieren Sie alle Rate-Limits und behandeln Sie beides als Grenze für das, was Sie sammeln.

Die ehrlichen, restriktiven Regeln, an die man sich halten sollte. Sammeln Sie nur öffentliche Daten, die jeder ohne Anmeldung sehen kann: Videotitel, Kanalnamen, Aufrufzahlen, Veröffentlichungsdaten und Video-Links, genau die aggregierten, inhaltsbezogenen Signale, die dieser Leitfaden sammelt. Scrapen Sie nichts hinter einem Login, keine privaten oder nicht gelisteten Videos, keine Members-only-Inhalte und keine individuellen Nutzerkommentare sowie die damit verbundenen Handles. Behandeln Sie Kommentare, Nutzernamen und alle Zuschauerdetails als personenbezogene Daten; wo personenbezogene Daten beteiligt sind, gelten Datenschutzregimes wie die DSGVO und der CCPA, was bedeutet, dass Sie eine rechtmäßige Grundlage benötigen und Löschanfragen nachkommen müssen. Umgehen Sie niemals die Authentifizierung oder laden Sie urheberrechtlich geschützte Medien für die Weiterverbreitung herunter. Das sind klare Grenzen, und dieser Leitfaden bleibt absichtlich auf der öffentlichen, nicht-personenbezogenen Seite aller davon.

Für jede echte, laufende oder kommerzielle Nutzung ist das richtige Werkzeug die offizielle YouTube Data API. Sie ist der von Google bereitgestellte sanktionierte Weg, gibt Ihnen garantierte Struktur für Titel, Aufrufzahlen, Kanaldaten und Suche und hält Sie innerhalb der Plattformbedingungen mit einem klaren Kontingent. Dieser Artikel ist eine technische Anleitung, die eng auf öffentliche, nicht-personenbezogene Daten für Content- und SEO-Recherche beschränkt ist. Er ist keine Befürwortung der Massenerfassung von Daten und deckt nichts hinter einem Login ab. Wenn Ihr Projekt mehr als eine kleine Stichprobe öffentlicher Felder benötigt, ist die Data API oder eine formale Vereinbarung der richtige Weg, kein ausgefeilterer Scraper.

Zusammenfassung

Wichtigste Erkenntnisse

  • YouTube wird clientseitig gerendert und ist bot-geschützt. Ein einfacher Abruf gibt eine leere Hülle zurück, also müssen Sie die Seite rendern, bevor Sie sie parsen.
  • Rendering und eine vertrauenswürdige IP gehören in einen Aufruf. Die Crawling API mit einem JS-Token erledigt beides; ajax_wait und page_wait steuern, wie lange sie auf Inhalte wartet.
  • Das eingebettete JSON parsen. Das ytInitialData-Objekt und Renderer-Namen sind weitaus beständiger als spröde verschachtelte CSS-Klassen.
  • Fünf öffentliche Felder treiben die Recherche. Titel, Kanal, Aufrufe, Veröffentlichungsdatum und Link sind Content- und Nachfragesignale, keine personenbezogenen Daten über Zuschauer.
  • Taktieren, rotieren und die Data API bevorzugen. Volumen niedrig halten, auf Residential-Rotation setzen und die offizielle YouTube Data API für alles Echte oder Kommerzielle nutzen.

Häufig gestellte Fragen

Warum gibt ein einfacher Abruf keine Daten von YouTube zurück?

Weil YouTube seine Such- und Videoinhalte clientseitig mit JavaScript rendert. Das anfängliche HTML ist eine Hülle, die sich erst füllt, nachdem die Skripte der Seite in einem Browser laufen, sodass eine rohe HTTP-Anfrage einen nahezu leeren Body zurückgibt. Um die echten öffentlichen Ergebnisse zu bekommen, müssen Sie die Seite zuerst rendern, was das JS-Token der Crawling API für Sie übernimmt.

Benötige ich das normale Token oder das JS-Token für YouTube?

Das JS-Token. Das normale Token ruft statisches HTML ab, was bei YouTube dieselbe leere Hülle ist, die ein einfacher Abruf zurückgibt. Das JS-Token rendert die Seite in einem echten Browser, bevor es das HTML zurückgibt, sodass das eingebettete ytInitialData-Objekt und die darin beschriebenen Ergebnisse vorhanden sind, wenn Sie sie parsen.

Welche YouTube-Daten sind sicher für SEO-Recherche zu scrapen?

Öffentliche, nicht-personenbezogene, inhaltsbezogene Felder: Videotitel, Kanalnamen, öffentliche Aufrufzahlen, Veröffentlichungsdaten und Video-Links von öffentlichen Such- und Videoseiten. Das sind die Signale, die Ihnen sagen, wie ein Thema rankt und worauf eine Zielgruppe klickt. Individuelle Nutzerkommentare, die damit verbundenen Handles, private oder Members-only-Inhalte und alles hinter einem Login sind nicht erlaubt, da sie personenbezogene Daten sind oder durch die Plattformbedingungen eingeschränkt werden.

Wie verwandele ich die gescrapten Daten in Keyword-Recherche?

Gruppieren Sie die Ergebnisse nach Abfrage und untersuchen Sie die Muster. Die Titelformulierung bei den Top-Ergebnissen zeigt die Sprache, die für ein Keyword rankt; Aufrufzahlen ordnen Unterthemen nach Nachfrage; Veröffentlichungsdaten enthüllen Aktualitätslücken, die Sie füllen können; und Kanalfrequenz zeigt, wer ein Thema bereits besitzt. Exportieren Sie nach CSV und die Analyse ist einige Tabellen-Sortierungen entfernt.

Sollte ich die offizielle YouTube Data API oder die Website scrapen?

Für jede echte, laufende oder kommerzielle Nutzung verwenden Sie die offizielle YouTube Data API. Sie ist der sanktionierte Weg, gibt garantierte Struktur, enthält ein klares Kontingent und hält Sie innerhalb von Googles Bedingungen. Das Scrapen einer kleinen Stichprobe öffentlicher Felder mit diesem Ansatz passt zu leichtgewichtiger, einmaliger Content-Recherche ohne API-Zugang, solange Sie die Bedingungen, robots.txt und Rate-Limits respektieren.

Wie vermeide ich, beim Scrapen von YouTube gesperrt zu werden?

Halten Sie Ihre Pro-IP-Anfragerate niedrig, fügen Sie echte Verzögerungen zwischen Anfragen hinzu, variieren Sie Ihre Abfragen statt eine erschöpfend zu crawlen, und leiten Sie über rotierende Residential-IPs, sodass keine einzelne Adresse ein Rate-Limit auslöst. Die Crawling API verwaltet Rotation und einen vertrauenswürdigen IP-Pool für Sie. Beobachten Sie die Statuscodes und gehen Sie zurück, sobald Sie Herausforderungen sehen.

Jetzt loslegen

Crawlen Sie jede Website im großen Maßstab, ohne gegen die Infrastruktur zu kämpfen.

Crawlbase übernimmt Proxys, Fingerprints und CAPTCHAs, damit Ihr Team Datenpipelines ausliefert, statt Crawl-Infrastruktur zu pflegen. 1.000 Anfragen kostenlos, keine Karte erforderlich.

Self-Service · Kein Verkaufsgespräch erforderlich · Enterprise-Crawl-Volumen verfügbar