Thailändisch lernen

Herunterladen von Videos auf youtube

        #101  

Member

--write-info-json schreibt alle Infos zum Video in eine JSON-Datei. Die ist recht umfangreich, aber hat die Informationen zum Titel, Beschreibung, Tags, Poster, Länge, Größe und Formaten. Kann man auch prima in die Datenbank mit übernehmen. Quasi alles, was man für die Datenbank so braucht. Und schon kann man auch die Datenbank durchsuchen.

Kleine Tipps hierzu für PHP:

Statt '/' bei den Verzeichnissen lieber die magische Konstante DIRECTORY_SEPARATOR nutzen. Nur falls Du mal das Script auf einem Server laufen lassen willst und nicht 17.000 Zeilen Code ersetzen willst.

Da YouTube URLs aus verschiedenen Quellen kkommen, hilft hier die korrekte ID zu ermitteln, damit man nicht alles ver Hand machen muss
Code:
function getYouTubeIDFromString ( string $youTubeLink ) : string
    {
        if (str_starts_with($youTubeLink, 'https://')) {
            preg_match_all("#(?<=v=|v\/|vi=|vi\/|youtu.be\/)[a-zA-Z0-9_-]{11}#", $youTubeLink, $matches);
            return $matches[0][0];
        }
        return $youTubeLink;
    }
Also machst Du dann Deinen Downloadstring mittels $download = getYouTubeIDFromString($alterDownloadString);

PS: Leider scheint der BBCode CODE hier nicht mehr zu funktionieren. @Moderatoren-Team ?
 
Zuletzt bearbeitet von einem Moderator:
        #103  

Member

Hier meine neueste Version von MySQLTube. MySQLTube ist ein System, das beim Herunterladen von Videos von Youtube oder Youtube-ähnlichen Seiten per yt-dlp (war youtube-dl) und beim Archivieren mit MySQL hilft.

Geeignet vor allem für Leute, die PHP kennen oder kennen lernen wollen.
 

Anhänge

  • MySQLTube.zip
    884,8 KB · Aufrufe: 4
        #104  

Member

Welche PHP-Version wird denn gefordert?

Nach kurzer Durchsicht (nicht Analyse), solltest Du Dich vielleicht mit PSR-Standards befassen.
Auch wäre es sinnvoll ein zentralen Datenbankmanagement einzusetzen: Siehe DRY und vielleicht machst Du das einfach mit PHP-MySQLi-Database-Class.
PS: Niemand mag Doctrine und bei einem Hobby-Projekt vielleicht auch zu viel, aber man lernt was fürs Leben.

Wenn Du über ein Refactoring nachdenkst, solltest Du das ganze Projekt noch einmal neu aufsetzen. Vielleicht ein PHP-Framework hinzuziehen oder auch nicht.

my 2 cents
 
        #105  

Member

Wie ich bereits erwähnt habe: ich bin Hobby-Programmierer. An dem Projekt habe ich gelernt. Für mich ist es nützlich. Beweis: ich nutze es regelmäßig. Ich habe damit eine Menge von Problemlösungen gefunden, die mir wichtig waren und könnte mir denken, dass diese auch für den ein oder anderen hilfreich wären. Deshalb habe ich das System zur Verfügung gestellt.

Ich habe es primär für mich entwickelt. Deshalb habe ich auch nicht die Notwendigkeit gesehen, mich an Standards zu halten, zusätzliche Klassen zu nutzen, Frameworks einzusetzen. Bei einer Arbeit in einem professionellen Team wäre das sicherlich anders. Seinen Mitarbeitern kann der Team-Leiter die Ohren lang ziehen. Bei mir kann das keiner :mrgreen:

Die verwendete PHP-Version ist 8.2.0. Die Skripts nutzen aber nicht unbedingt besonders avancierte Funktionen. Das System sollte also unter jeder halbwegs aktuellen php-Version laufen.
 
        #106  

Member

Ich würde nur über eine zentrale Datenbank-Klasse nachdenken und mittels Template-System Code von HTML-Code trennen.

Durch die Datenbank-Klasse ersparst Du Dir das ganze binding.
$update = ['sprache' => 'DE, 'title' => 'Mein YouTube Video'];
$db->update('videodb',$update);


Das Template ermöglicht einfach übersichtlichen Code. Dafür könnte man zum Beispiel Smarty nutzen.

Das sind nur Ideen, da Du ja etwas beim Programmieren dazulernen wolltest.
 
        #107  

Member

So, ich habe auch mal etwas geschnüffelt, also im Netz, und habe notube gefunden. Mir geht es dabei nicht unbedingt um den Download von Videos, sondern das extrahieren der Tonspur und konvertieren oder speichern im Format mp3.

Anhang anzeigen 1702991976809.png

Nachteilig ist vielleicht, dass beim Ausführen immer eine Seite geöffnet wird, die aber einfach weggeklickt werden kann. Negative Erfahrungen habe ich mit notube noch nicht gehabt, zumidest ist mir nichts aufgefallen. Die Konvertierung ist schnell und der Download ebenfalls.
 
        #109  

Member

Das geht einfacher auf der console
ffmpeg -i <videodatei> <ausgabedatei.mp3>

Und wenn es direkt von YouTube sein soll
yt-dlp <youtube-ID oder URL> --audio-format mp3
 
  • Standard Pattaya Afrika Afrika Phillipinen Phillipinen Amerika Amerika Blank
    Oben Unten