Nach dem jüngsten YouTube-Trend in YouTube-Videos „Reddit to text-to-Speech“ habe ich ein Projekt eingeleitet, um ein Programm zu erstellen, mit dem der Prozess des Empfangens, Generierens und Hochladen dieser Videos auf YouTube mit möglichst wenig Intervention wie möglich automatisiert werden kann. Es dauerte 4 Monate, um das Projekt abzuschließen, und besteht aus 3 separaten Programmen, die gleichzeitig funktionieren, um diese Aufgabe zu erledigen.
Die Idee war, so viele manuelle Eingriffe wie möglich zu minimieren und alle trivialen Aufgaben zu automatisieren. Der Prozess kann jedoch nicht zu 100% automatisiert werden. Beispielsweise können Kommentare mit Links in ihnen nicht aufbewahrt werden, da die Qualität des Videos aufgrund des TTS zusammengefasst werden. Während ein Kommentar eine große Anzahl von Stimmen enthält, könnte er für ein YouTube -Video möglicherweise beleidigend und nicht sicher sein und daher entfernt werden. Die Miniaturansicht muss zwar generiert werden, um die Zuschauer zu erstellen, um auf Ihr Video zu klicken. Gleiches gilt für den Titel des Videos, das Clickbait-y sein muss, um Aufmerksamkeit zu erhalten. Ich habe versucht, den manuellen Prozess mit dem Client -Programm zu optimieren, und ich brauche ungefähr 30 Minuten, um 6 Videos zu erstellen (das max, das innerhalb von 24 Stunden mit der YouTube -Daten -API hochgeladen werden kann).
Einige meiner generierten Videos:
https://www.youtube.com/watch?v=xxdkmhyxcsq
https://www.youtube.com/watch?v=aw0yjixxnxi&t=35s
Der Prozess des Abschlusses eines Videos umfasst:
Beispiel Reddit Text-to-Speech-Kanäle:
https://www.youtube.com/watch?v=izsxhx64pgq https://www.youtube.com/watch?v=vzdtuap2ztw
Platzieren Sie diese in einen Ordner namens "Assets" im YouTube Bot -Videogeneratorverzeichnis.
Darüber hinaus habe ich meine Meinung zu vielen Designaspekten teilweise durch das Projekt geändert, und daher werden einige Dateien seltsamerweise genannt und es gibt hier und da nicht genutzten Code. Ich werde den Code nicht mehr aktualisieren. Bitte zögern Sie nicht.
Überprüfen Sie die Abhängigkeiten.txt
Um die meisten Python -Abhängigkeiten leicht zu installieren, führen Sie den folgenden Befehl nach dem Klonen aus (einige müssen möglicherweise manuell installiert werden):
pip install -r requirements.txt
Dieser jüngste Trend in Reddit-Text-zu-Sprache-Videos besteht (normalerweise) einer sehr einfachen Formel:
Ein Lied wird zufällig ausgewählt. Ich habe ~ 40 Songs Kevin MacLeod Royity Free Songs heruntergeladen, die zufällig ausgewählt werden können.
https://www.youtube.com/watch?v=ccpyyrds-qo&list=plbzgr7h3fyus3lvitxtfaigv601ukuhjx
Alle in der Generierung des Videos verwendeten Vermögenswerte können hier heruntergeladen werden:
http://www.mediafire.com/file/hpu1j1k1avwp9dj/youtube_bot_assets.zip/file
Sie müssen in einem Ordner mit dem Namen "Assets" im Videogeneratorprogramm platziert werden.
Das Projekt besteht aus drei separaten Programmen:
Dieses Programm beherbergt den (1) Socket -Server für eine Verbindung zum Client (S) -Programm und auch den (2) Socket -Server für eine Verbindung zum Videogenerator -Client (en). Darüber hinaus wird dieses Programm alle eine Stunde lang neue Skripte von Reddit erfassen und die vorhandenen noch nicht bearbeitet.
(1) Dieser Socket -Server sendet RAW -Skripte aus der Datenbank an das manuelle Überprüfungsprogramm (siehe unten). Anschließend wird diese überprüften Skripte empfangen und die Datenbank mit den finanziellen Skripten aktualisiert, die eine Miniaturansicht, Beschreibung und Titel enthalten. Der Server kann mehrere Clients verarbeiten, damit mehrere Personen diese Skripte bearbeiten können.
(2) Der Videogeneratorserver ist derzeit nur für einen Videogenerator -Client entwickelt. Die ursprünglichen Pläne waren, dass dieser Server mehrere Videogenerator -Clients verteilt, die zwischen mehreren Computern verteilt sind. Ich stellte jedoch fest, dass ein Computer für alle Bedürfnisse meiner Videogenerierung ausreichend genug war. Deshalb habe ich mich entschlossen, ihn nur einem Kunden zu codieren. Der Zweck dieses Servers besteht darin, finanzielle Skripte aus der Datenbank an den Videogenerator -Client zu senden.
Dieses Programm erhält finalisierte Videoskripte vom YouTube Bot Video Generator Server, der Miniaturansichten, Beschreibungen, Tags und einen Titel enthält. Diese Skripte werden in eine MP4 -Datei generiert und dann zu einer geplanten Veröffentlichungszeit auf YouTube hochgeladen (derzeit zufällig um 17.00 Uhr, 18 Uhr, 19 Uhr GMT - die empfohlenen Zeiten zum Hochladen auf YouTube). Sobald das Skript empfangen wird, wird es generiert, dann wartet das Programm, bis es über genügend API -Credits zum Hochladen verfügt, indem die letzten 6 Videos hochgeladen wurden.
API -Quotennutzung wird um 8 Uhr GMT zurückgesetzt . Ich habe berechnet, dass das Hochladen jedes Videos 1658 Credits kostet. Sie können maximal 10 000 Credits pro Tag verwenden. Dies bedeutet theoretisch, dass Sie 6 Videos pro Tag hochladen können. In der Praxis konnte ich jedoch 5 Videos hochladen. Manchmal wird der sechste hochgeladen, aber es steht nicht genügend Quoten zur Verfügung, um das Miniaturbild hochzuladen, was in diesem Fall eine manuelle Intervention erfordert, um die Miniaturansicht manuell hochzuladen. Die Videos werden mit YouTube-Upload hochgeladen, von denen ich nur mit Python 2.7 arbeiten konnte. Es wird mit Subprozess aufgerufen.
Sobald ein Video erfolgreich hochgeladen wurde, wird der Status zusammen mit einer Upload -Zeit festgelegt, damit das Programm überprüfen kann, wie viele Videos innerhalb des Tages hochgeladen wurden, um die Überschreitung der Quoten zu vermeiden.
YouTube Data API-Informationen
Text-to-Speech- Aspekt des Projekts war der bei weitem die schwierigsten Aspekte des Projekts darin, den Text in die Rede zu bringen, um ordnungsgemäß zu funktionieren. Ich wollte den Daniel MLG Soft Scan -Text zur Sprach Stimme verwenden - den in den meisten Text zu Sprach -Reddit -Videos. Ich glaubte, dass dies ein wichtiger Bestandteil des Projekts war, da diese Stimme sehr erkennbar ist und (meiner Meinung nach) einer der am besten klingenden Text für verfügbare Reden ist. Ich verwende die Befehlszeilenversion von Balabolka, um die .wav -Dateien zu generieren, und diese wurden dann im Programm zur Videogenerierung mit verschiedenen Rahmen synchronisiert.
Balabolka http://www.cross-plus-a.com/balabolka.htm Anweisungen, wie Sie die Daniel Mlg-Stimme erhalten
Das Client-Programm ist ein zunderartiger Swipe Links- und Rechtsvorgang, um Kommentare herauszufiltern, die nicht in das Video aufgenommen werden sollen. Es ermöglicht dem Benutzer auch, den Titel zu schreiben und eine Miniatur für das Video zu hochzuladen sowie Beschreibung und Tags zu bearbeiten, obwohl der Titel, die Beschreibung und die Tags teilweise wie folgt generiert werden: Titel: SEFAULT IST DER BESCHREIBUNG BESCHREIBUNG: Standardmäßig ist eine generierte Vorlage mit dem Posttitel und ein paar Hashtags-Tags, die alle Basis-Tags, die ich von populärem Flowdit-usw.-. Diese können bearbeitet werden. Eine Vorlage für die Miniaturansicht ist teilweise generiert. Es gibt Schecks, um sicherzustellen, dass die Anzahl der Zeichen für alle diese Felder nicht überschritten wird, z.
Der endgültige Inhalt des Videos enthält das bearbeitete Skript, die Miniaturansicht, die Tags, die Beschreibung und die Videoeinstellungen (es ist möglich, bestimmte Funktionen der Videogeneratorvorlage während des Bearbeitungsprozesses wie Hintergrundfarbe, Textgröße, Leitungsbreiten usw. zu ändern.
Mysql
Die Speicherung der Skripte und ihre relevanten Informationen erfolgt mit einer MySQL -Datenbank. Dies ist das erste Mal, dass ich eine MySQL -Datenbank für ein Projekt verwendet habe. Ich bin nicht brillant in SQL Ich habe gelernt, was notwendig war, um die Dinge zum Laufen zu bringen. Ich habe drei Tabellen "Benutzer", "Videogeneratoren" und "Skripte" verwendet
"Benutzer" -Tabelle
Ursprünglich hatte ich geplant, ein umfangreiches Anmeldesystem zu erstellen, in dem Benutzer Bearbeitungsstatistiken hatten, sehen, wer online ist Passwörter werden mit MD5 auf der Client -Seite verschlüsselt
Tabelle "Skripte"
Die wichtigste Tabelle enthält alle Skriptinformationen. Das Statusfeld ist sehr wichtig, um zu verfolgen, wo sich ein Skript befinden soll.
-RAW: Das Skript steht zur Bearbeitung zur Verfügung
-Diting: Das Skript wird bearbeitet und kann von anderen Benutzern in diesem Zustand nicht bearbeitet werden
-Complete: Das Skript wurde bearbeitet und wird an den Videogenerator -Client gesendet
-SuccessUpload: Das Skript wurde erfolgreich auf YouTube hochgeladen
Tabelle "Videogeneratoren"
Wie bei den Benutzern habe ich den Client so gestaltet, dass er einen Benutzernamen und ein Passwort zum Anmelden hat. Das Passwort wird auf der Clientseite mit MD5 verschlüsselt
Diese Tabellen werden automatisch in einer Datenbank mit dem Namen "YouTubebot" erstellt, wenn sie noch nicht vorhanden sind.
Erhalten Sie Anmeldeinformationen für Ihr Google API -Konto werden nach einer einmaligen Anmeldung automatisch heruntergeladen und gespeichert