YouTube Mag ich Videos Daten CSV

YouTube 'Mag ich'-Videos-Daten als CSV exportieren

Ich habe ein JavaScript-Skript geschrieben, um YouTube 'Mag ich'-Videos (Liked Videos) Daten als CSV zu exportieren, und stelle es hier kurz vor. Funktion: Speichert die Videoliste von der 'Mag ich'-Videos-Seite als CSV im Format Titel,URL. Fehler: URLs funktionieren nicht mehr ab einem bestimmten Video. Das scheint an YouTube zu liegen, also kann ich nichts dagegen tun.

Shou Arisaka
4 Min. Lesezeit
2. Nov. 2025

Ich habe ein JavaScript-Skript geschrieben, um YouTube ‘Mag ich’-Videos (Liked Videos) Daten als CSV zu exportieren, und stelle es hier kurz vor.

Funktion: Speichert die Videoliste von der ‘Mag ich’-Videos-Seite als CSV im Format Titel,URL.

Fehler: URLs funktionieren nicht mehr ab einem bestimmten Video. Das scheint an YouTube zu liegen, also kann ich nichts dagegen tun. Die Reihenfolge ist zufällig.

Verwendung: Gehen Sie zur ‘Mag ich’-Videos-Seite, öffnen Sie die Chrome-Entwicklertools und kopieren Sie den folgenden Quellcode. Hinweis: Sie sollten einige Sekunden warten, bevor Sie nur den letzten console.save(csv,'result.csv') ausführen.


function getElementsByXPath(xpath, parent)
{
  let results = [];
  let query = document.evaluate(xpath,
      parent || document,
      null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
  for (let i=0, length=query.snapshotLength; i<length; ++i) {
    results.push(query.snapshotItem(i));
  }
  return results;
}

(function(console){

    console.save = function(data, filename){

        if(!data) {
            console.error('Console.save: No data')
            return;
        }

        if(!filename) filename = 'console.json'

        if(typeof data === "object"){
            data = JSON.stringify(data, undefined, 4)
        }

        var blob = new Blob([data], {type: 'text/json'}),
            e    = document.createEvent('MouseEvents'),
            a    = document.createElement('a')

        a.download = filename
        a.href = window.URL.createObjectURL(blob)
        a.dataset.downloadurl =  ['text/json', a.download, a.href].join(':')
        e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null)
        a.dispatchEvent(e)
    }
})(console)

var absolutePath = function(href) {
    var link = document.createElement("a");
    link.href = href;
    return link.href;
}

var xpath = '//*[@id="video-title"]' ;
var csv ;

for (i = 1; getElementsByXPath(xpath).length; i++) {
    text = getElementsByXPath(xpath)[i].getAttribute("title");

    text = text.replace(/,/g, "、");
    text = '"' + text + '"'
    csv += text
    csv += ','
    // csv += "\n" ;

    text = getElementsByXPath(xpath)[i].getAttribute("href")
    text = absolutePath(text) ;

    text = text.replace(/,/g, "、");
    text = '"' + text + '"'
    csv += text
    // csv += ','
    csv += "\n" ;
}

console.save(csv,'result.csv')

Dieses JavaScript-Programm ruft Elemente basierend auf einem bestimmten XPath-Pfad auf einer Webseite ab, extrahiert Daten aus diesen Elementen und speichert sie in einer CSV-Datei. Hier ist eine Schritt-für-Schritt-Erklärung des Programms.

  1. getElementsByXPath-Funktion:

    • Eine Funktion, die einen XPath-Ausdruck und ein übergeordnetes Element empfängt und Elemente abruft, die dem angegebenen XPath entsprechen.
    • Verwendet document.evaluate, um den XPath auszuwerten und passende Elemente abzurufen.
  2. (function(console){...})(console)-Teil:

    • Code zur Erweiterung der console.save-Funktion.
    • Die console.save-Funktion fügt eine benutzerdefinierte Funktion zum Speichern von Daten in einer Datei hinzu.
  3. absolutePath-Funktion:

    • Eine Funktion zur Konvertierung relativer URLs in absolute URLs.
    • Konvertiert die gegebene relative URL mit einem <a>-Element in eine absolute URL und gibt sie zurück.
  4. xpath-Variable:

    • Gibt den XPath-Ausdruck an. Dieser XPath-Ausdruck dient zum Extrahieren von <a>-Elementen mit dem id-Attribut “video-title” auf der Seite.
  5. csv-Variable:

    • Eine Variable zum Speichern von CSV-Daten.
  6. for-Schleife:

    • Verwendet getElementsByXPath(xpath), um Elemente abzurufen, die dem XPath entsprechen, und führt eine Schleife so oft durch wie die Anzahl der Elemente.
  7. Verarbeitung innerhalb der Schleife:

    • Verwendet getElementsByXPath(xpath)[i].getAttribute("title"), um Textdaten aus dem “title”-Attribut des Elements abzurufen.
    • Die abgerufenen Textdaten werden als CSV-Zelle durch Kommas (,) getrennt zur csv-Variable hinzugefügt. Die Textdaten werden in doppelte Anführungszeichen eingeschlossen.
    • Verwendet getElementsByXPath(xpath)[i].getAttribute("href"), um die relative URL des Links aus dem “href”-Attribut des Elements abzurufen.
    • Konvertiert die relative URL mit der absolutePath-Funktion in eine absolute URL, schließt sie in doppelte Anführungszeichen ein und fügt sie zur csv-Variable hinzu.
    • Trennt Zellen mit Kommas und fügt am Zeilenende einen Zeilenumbruch (\n) hinzu.
  8. console.save(csv, 'result.csv'):

    • Verwendet die console.save-Funktion, um den Inhalt der csv-Variable als CSV-Datei herunterzuladen. Der Dateiname ist ‘result.csv’. Diese Funktion ist benutzerdefiniert und dient zum Speichern von CSV-Daten in einer Datei.

Dieses Programm ruft Titel und Links von Elementen ab, die dem angegebenen XPath entsprechen, und speichert sie in einer CSV-Datei.

Bonus: Skript zum Klicken auf Liked videos (geschrieben, aber nicht verwendet)


for (i=0; i < document.querySelectorAll("#endpoint").length ; i++ ){
    // console.log(i) ;
        // console.log(document.querySelectorAll("#endpoint")[i].getAttribute('title')) ;
        if (document.querySelectorAll("#endpoint")[i].getAttribute('title').match(/Liked videos/) == null){
        } else {
        // console.log(i) ;
            document.querySelectorAll("#endpoint")[i].click()
        }
}

Dieser JavaScript-Code durchsucht Elemente auf einer Webseite und führt bei Übereinstimmung eine Klick-Aktion aus. Konkret sucht er Elemente mit der ID #endpoint und klickt auf diejenigen mit dem Titel “Liked videos”.

Diesen Artikel teilen

Shou Arisaka 2. Nov. 2025

🔗 Links kopieren