Automatisch Videos hochladen mit Strohis Toolset Für Uploads v0.7.0 [BETA]

  • Disclaimer: Dieses Programm befindet sich aktuell im Beta-Status. Es werden noch nicht alle Bedingungen der Youtube-Developer-Api-Bedingungen erfüllt.

    Übersicht


    Strohis Toolset Für Uploads ist ein Youtube-Uploader mit dem Ziel, den Upload von Youtube-Videos möglichst vollständig zu automatisieren und als flexibles Programm für verschiedenste Situationen geeignet zu sein. Ich entwickle und verwende ihn nun schon seit ca. 2 Jahren und habe ihn mittlerweile auch so angepasst, dass ich ihn anderen zugänglich machen kann. :)


    Der STFU ist ein Programm, das von euch festgelegte Ordner überwacht und nach Videos durchsucht, die auf Youtube hochgeladen werden können. Sobald welche gefunden werden, wird der Upload automatisch gestartet und durchgeführt.

    Dabei könnt ihr mittels eines umfangreichen Templatesystems bereits im Voraus festlegen, welche Werte (Titel, Beschreibung, Thumbnails usw.) das Video erhalten soll, sodass ihr während des eigentlichen Uploads nichts mehr tun müsst. Auch Veröffentlichungszeiten kann der Uploader entsprechend eines von euch eingestellten Plans selbstständig berechnen.


    Für ganz erfahrene Experten wurde der Roslyn-Compiler von Microsoft eingebunden. Mit diesem ist es möglich, C#-Skripte direkt im Uploader einzugeben, um eure eigenen Programme direkt in den Upload-Mechanismus einzubauen.

    Download

    Links für den Uploader:

    .NET Framework Version 4.6.1 oder höher: link
    STFU runterladen: link


    Links für den Playlistservice:

    Java in mindestens Version 11: link

    SPS runterladen: link

    Weitere Links

    Datenschutzerklärung: link

    Tutorial-Playlist

    Eine Playlist mit Tutorials für das Programm ist hier zu finden:

    Geplante Funktionen in den nächsten Versionen

    • Die Entwicklung des Programms wurde eingestellt
    • Eventuell eines Tages: Restart des Programms als Java- oder Kotlin-Anwendung, um es plattformunabhängig zu machen.
  • Ok. Bin aufs Ergebnis gespannt. :)
    Falls du dann Fragen hast, kannst du die dann natürlich gerne stellen. Ich schau mal, ob ich es hinbekomme, dass ich E-Mail-Benachrichtungen für dieses Thema aktivieren kann, damit ich es auch möglichst schnell mitbekomme.


    Als ich einen Namen für das Programm gesucht habe, was "Strohis Toolset Für Uploads" natürlich definitiv das naheliegenste. Das fällt einem doch als allererstes ein. :D
    *hüstel*

  • Ich habe jetzt ein erstes Tutorial-Video erstellt und im Startbeitrag verlinkt.


    Außerdem ist Version 0.1.1 Beta fertiggestellt und auf dem Drive zur Verfügung gestellt.


    Änderungen:

    • Im Pfad-Fenster kann man nun Videos zum zugehörigen Pfad direkt als hochgeladen markieren
    • Bugfix: Der Link zum Kanal im Hauptfenster funktioniert nun
    • Bugfix: Der Uploader stürzt nun nicht mehr ab, wenn das hochzuladene Video gerade im Schreibzugriff eines anderen Programms ist
    • Bugfix: Das erneute Hochladen von Videos nach Umbenennen geht nun auch dann, wenn der Uploader seitdem nicht neugestartet wurde
    • Bugfix: Pfade, die im Pfad-Fenster inaktiv gesetzt werden, tauchen nun nicht mehr in der Überwachung auf
  • Hast du das YouTube-Center von @VincentLP mal ausprobiert? Vielleicht kannst du dir dort auch Anregungen oder umgekehrt holen.


    Was ist der Vorteil von deinem Tool gegenüber dem YouTube Center?


    Ich bin ja jemand, der nicht die Massen an Videos auf einmal hochlädt und deswegen problemlos auf einen Uploader verzichten könnte, oder?
    Gibt es entscheidende Vorteile außer wohl die üblichen "verschiedene, auswählbare Schablonen"?


    Gibts den Code auch auf Github?



    Das Tutorial hab ich jetzt noch nicht gesehen aber ich empfehle dir ebenso wie @De-M-oN immer: Lieber so kurz wie möglich. 5-10 Minuten finde ich optimal, während man bei 40 Minuten oft mittendrin einschläft und sich ärgert, wenn man für bestimmte Schritte das Tutorial vielleicht öfter als 1x ansehen muss.

  • Beim YTC schaue ich ab und zu mal vorbei, ja. Bin ja auch auf der Liste für die Vorab-Versionen. :)


    Was ist der Vorteil von deinem Tool gegenüber dem YouTube Center?

    Soweit ich das bisher sehe (evtl. kann @VincentLP da ja was zu sagen), zielt das YTC eher darauf ab, auf ein angenehmes Studio zum Verwalten des kompletten Youtube-Kontos für jedermann und -frau zu sein.


    Mein Tool fokussiert sich rein aufs komplett automatische Hochladen von Videos, sprich man plant die Videos vorab zum Upload (zu diesem Zeitpunkt müssen sie noch nicht mal kodiert sein), drückt dann irgendwann auf "Start" und mein Uploader kümmert sich dann komplett selbstständig darum, dass die Videos mit richtigem Titel, Beschreibung, Tags, Thumbnail und Sichtbarkeitsstatus auf Youtube landen. Das ist, soweit ich das bisher sehen konnte, beim YTC bisher eher bedingt möglich.


    Gibt es entscheidende Vorteile außer wohl die üblichen "verschiedene, auswählbare Schablonen"?

    • Videos und Thumbnails müssen, wenn man den Upload plant, noch nicht fertig kodiert sein, da das Planen des Uploads und das Hochladen an sich komplett voneinander entkoppelt sind
    • Zur Planung neuer Videos muss man mein Programm nicht unbedingt bedienen. Je nachdem, wie man es verwendet, muss man gar nichts machen oder nur Textdateien in einen Ordner erstellen. Es reicht je nach Bedienungsart, pro Projekt einmal am Anfang ein paar Einstellungen zu treffen.
    • Veröffentlichung der Videos kann vom Uploader vollkommen automatisch geplant werden
    • Das Runterfahren nach dem Upload kann auch Prozesse überwachen, sodass man den PC erst dann runterfahren lassen kann, wenn z. B. das Schnittprogramm sich beendet hat und danach alle Videos hochgeladen wurden


    Gibts den Code auch auf Github?

    • In einer alten Version. Ich bin vor einiger Zeit auf ein privates Repo umgezogen.


    Das Tutorial hab ich jetzt noch nicht gesehen aber ich empfehle dir ebenso wie Demon immer: Lieber so kurz wie möglich.

    Danke für den Tipp!
    Ja, das ist ein bisschen kompliziert, weil mein Uploader eben kein typischer Uploader ist, sondern durch den Fokus auf vollständige Automatisierung anders zu bedienen ist.
    Vorerst habe ich ein Inhaltsverzeichnis in der Beschreibung und im angepinnten Kommentar, der das Video in vier Hauptkapitel unterteilt.


    Meinst du, es könnte helfen, stattdessen vier einzelne Videos für die Hauptfunktionalitäten hochzuladen? Diese hätten dann so ungefähr 10 Minuten pro Video.


    ---


    Zu deiner Frage, ob du den Uploader brauchst, wenn du nur eher selten Massen an Videos hochlädst:
    Ja und nein. :D
    Auch bei wenigen Videos kann eine Automatisierung ganz praktisch sein, weil du dir dann je nach genauem Vorgehen den Teil zum Hochladen vereinfachen kannst. Du würdest dann nicht mehr die Videos planen, während sie hochladen, sondern wenn sie bereits auf Youtube sind. Kommt halt drauf an, wie genau du deine Videos bearbeitest und hochlädst.


    Aber das meiste werden wohl die Leute gewinnen, die so wie ich acht bis zwölf Folgen in einem Rutsch aufnehmen, kodieren und dann direkt hochladen, das stimmt.

  • Hey @strohi


    Erstmal Respekt für die Arbeit... Vor allem in .Net. Da habe ich nur sehr rudimentär Ahnung von Ich werde das Tool auf jeden Fall mal ausprobieren.

    Soweit ich das bisher sehe (evtl. kann @VincentLP da ja was zu sagen), zielt das YTC eher darauf ab, auf ein angenehmes Studio zum Verwalten des kompletten Youtube-Kontos für jedermann und -frau zu sein.

    Ja. Da gibt es Unterschiede. Strohi's Anwendung richtet sich denke ich eher an Power-User. Ich habe es aber noch nicht ausprobiert, kann also noch wenig sagen. Ein "angenehmes Studio zum Verwalten des kompletten Youtube-Kontos für jedermann und -frau" trifft es glaube ich ganz gut. (Was ich auch als Lob verstehe :saint: ) Zwar plane ich ähnliche Features, aber das dauert noch ein wenig.


    Wir zwei können uns aber bestimmt über die YouTube-API austauschen, die gelinde gesagt ein Graus ist, was den Umfang angeht. Wenn du Fragen hast stehe ich gern zur Verfügung - andererseits ist dieses Moloch auch bei mir immer wieder ein kleiner Problemfall.


    Liebe Grüße und gute Nacht
    Vincent


    PS: Werde erstmal fix das Tutorial schauen. Habe da vorhin nur schnell durch gezappt.

  • @strohi
    Nur kurz überflogen, direkt begeistert. Thumbs up. Werde ich mich intensiv ab Sonntag mit beschäftigen. Klingt sehr geil. Und .NET ist noch besser :)


    Erste Frage: Auslesen von Folgennummern aus dem Filename ist klar. Entweder habe ich es überlesen oder es gibt aktuell keine Möglichkeit den Titel und die Folgennummer aus dem Dateinamen zu extrahieren. Beispiel "Die_Ritter_der_Kokosnuss_001.mp4"


    Wenn Du .NET nimmst, wäre es nicht möglich da einfach Regex zu ermöglichen? Klar, das ist dann für Fortgeschrittene, aber damit wäre es ja "einfach" machbar die Folgennummer und den Titel zu extrahieren und dabei gleich noch die Unterstriche durch Leerzeichen zu tauschen. Muss man halt nur noch Regex können, aber das ist ja Fleißarbeit und man könnte dann ja hier nach und nach ein paar Expressions bereitstellen. Zudem gibt's ja schöne Webseiten zum testen dafür.


    PS: Bin aber noch dabei das Video zu gucken. Mir fallen nur gleich die Augen zu und ich muss morgen fit sein :)


    Edit 2: Hm...replace könnte ein Problem sein.
    Aber aus dem Filename Ritter_der_Kokosnuss_001.mp4
    würde \d{3} die 001 extrahieren und \D*\D Ritter_der_Kokosnuss_
    Wäre evtl. ein interessanter Ansatz. Zum Testen: https://regex101.com/

  • Guten Morgen und danke für die lieben Antworten! :)


    (Was ich auch als Lob verstehe )

    Ist es auch. :)


    Ja, die Youtube-API stinkt manchmal echt.
    Wobei sie im Moment wenigstens stabil läuft. Gab mal eine Zeit, bei der komplett zufällig laufende Uploads bei Abschluss mit Fehler beendet und dann im Video-Manager als "vom Benutzer abgebrochen" gelistet wurden. Das war nervig wie sonst was. :D


    Und .NET ist noch besser

    Oh ja. Das beste, was Microsoft je geschaffen hat. Hätten sie es von Anfang an plattformunabhängig gemacht, ich würde ihnen die Füße dafür knutschen. So ziehe ich nur meinen Hut. :D


    Wenn Du .NET nimmst, wäre es nicht möglich da einfach Regex zu ermöglichen? Klar, das ist dann für Fortgeschrittene, aber damit wäre es ja "einfach" machbar die Folgennummer und den Titel zu extrahieren und dabei gleich noch die Unterstriche durch Leerzeichen zu tauschen. Muss man halt nur noch Regex können, aber das ist ja Fleißarbeit und man könnte dann ja hier nach und nach ein paar Expressions bereitstellen. Zudem gibt's ja schöne Webseiten zum testen dafür.

    An Regex hatte ich noch gar nicht gedacht.
    Replace geht bisher allgemein noch nicht, weil ich mir noch nicht sicher bin, wie ich das mit den Strings am besten hinbekomme. Eigentlich wollte ich auf Strings, bzw. auf " komplett verzichten, damit ich das + zum Verketten von Strings und das \" zum Escapen eines Anführungszeichens nicht implementieren muss, aber ich fürchte fast, dass ich nicht drum rum kommen werde. Bisher sind ja auch die Argumente in den drei Funktionen, die ich habe, komplett ohne ".


    Ich denk mir was aus! :)


    Zum Thema "ist dann für Fortgeschrittene": das ist kein Problem. Ich ziele nicht wirklich drauf ab, die große Masse zu bedienen, von daher muss es nicht unbedingt der einfachste Weg sein. Es muss der Weg sein, der am stabilsten, performantesten und konsistentesten funktioniert. :)

  • Replace geht bisher allgemein noch nicht, weil ich mir noch nicht sicher bin, wie ich das mit den Strings am besten hinbekomme. Eigentlich wollte ich auf Strings, bzw. auf " komplett verzichten, damit ich das + zum Verketten von Strings und das \" zum Escapen eines Anführungszeichens nicht implementieren muss, aber ich fürchte fast, dass ich nicht drum rum kommen werde. Bisher sind ja auch die Argumente in den drei Funktionen, die ich habe, komplett ohne ".

    Verstehe ich nicht ganz.


    Wenn du 'Dies_ist_ein_Text'.replace(/_/g, ' ') machst kommt doch einfach 'Dies ist ein Text' heraus ohne, dass du etwas escapen musst. In aller Regel ist es doch so, das bei http-Request automatisch Sonderzeichen escaped werden... Gut, ich stecke jetzt nicht so ganz in C# drin, aber ist doch meistens alles eine Soße.


    Am Ende kann Mann/Frau alles escaspen mit meinTitel.replace(/"/g, '\"') und danach ab in den Äther damit.


    Übersehe ich da ein Problem? :D


    Guten Morgen
    Vincent

  • Übersehe ich da ein Problem?

    Ja, nein, vielleicht. :D
    Ich hab mich etwas ungünstig ausgedrückt.


    Im Programm kannst du bisher in den Templates Texte aus Dateien nachladen, indem du eine Art ganz primitive Skriptsprache benutzt (die aktuell noch selbstgeschrieben ist. :D ). Diese ganz primitive Sprache kam bisher noch komplett ohne Anführungszeichen für Strings aus (für Dateien einlesen, Zahlen finden und führende Nullen entfernen wurden die bisher nicht benötigt).
    Und Valcry hatte jetzt den Wunsch, dass ich da irgendwie Regex reinbringe, bzw. eben ein Ersetzen ermögliche..


    Aber "JS" bringt mich auf eine Idee - vielleicht gibts von C# ja einen Interpreter, der irgendeine einfache Programmiersprache nutzen könnte. Dann würde ich mir viel Arbeit sparen können. Ich setz mich morgen hin und gucke mal, was ich da tun kann. :)

  • Aber "JS" bringt mich auf eine Idee - vielleicht gibts von C# ja einen Interpreter, der irgendeine einfache Programmiersprache nutzen könnte. Dann würde ich mir viel Arbeit sparen können. Ich setz mich morgen hin und gucke mal, was ich da tun kann.

    Hab das was gefunden: :)
    http://www.moonsharp.org/


    Ist ein LUA-Interpreter geschrieben in C#. LUA ist eine gern benutzte, weil recht einfache Skriptsprache, die aber ziemlich mächtig ist.


    Schönen Abend
    Vincent

  • Nices Tool, werd ich vermutlich nicht nutzen (weil ich momentan eh nix uploade), aber ich sehe gerne schöne .Net Software! Warum packstes nicht auf ein Repository wie GitHub oder BitBucket? Da ist auch das Versionieren der Downloads leichter, du kannst da die Software besser dokumentieren und man könnte das Ding eventuell OpenSource bzw. "für einen inneren Kreis"-Source verfügbar machen. (Heißt, ich will den Code sehen und Bugs fixen, bzw. eher Bugs fixen, ich werd das Tool eh decompilen, so wie jedes .Net Tool, das interessant ist :P ).


    Alternativ zu LUA (das ich persönlich gar nicht so mag, aber da würd ich mich nicht gegen sträuben) kannste auch gleich C# für Scripting einbauen, soweit ich weiß. Allerdings stellt sich die Frage, ob C# eine "leichte Skriptsprache" ist...

  • Warum packstes nicht auf ein Repository wie GitHub oder BitBucket? Da ist auch das Versionieren der Downloads leichter, du kannst da die Software besser dokumentieren und man könnte das Ding eventuell OpenSource bzw. "für einen inneren Kreis"-Source verfügbar machen. (Heißt, ich will den Code sehen und Bugs fixen, bzw. eher Bugs fixen, ich werd das Tool eh decompilen, so wie jedes .Net Tool, das interessant ist :P ).

    Ich habs auf einem Repo, aber das ist privat auf meinem Server. :D
    OpenSource will ich es erst mal nicht machen, vielleicht später mal. @CHAOSFISCH meinte damals ja, dass sich für ihn beim SJYU durch OpenSource nicht wirklich Vorteile ergeben hätten, von daher warte ich damit erst mal noch ab.


    Alternativ zu LUA (das ich persönlich gar nicht so mag, aber da würd ich mich nicht gegen sträuben) kannste auch gleich C# für Scripting einbauen, soweit ich weiß. Allerdings stellt sich die Frage, ob C# eine "leichte Skriptsprache" ist...

    Naja, für das, was damit gemacht wird, wird die Sprache wahrscheinlich kaum einen Unterschied machen. Für mehr als ein bisschen String-Manipulation ist das ja gar nicht gedacht und das ist in C# auch nicht komplexer, als in anderen Sprachen. :D
    C# hab ich mir gestern ein bisschen angeschaut, dank Roselyn sieht das echt super aus, allerdings pustet es den Download einfach mal auf 15 MB hoch. 8|


    Heute schau ich mir mal LUA und moonsharp an und dann werd ich mir überlegen, wie ich es mache. Theoretisch könnte ich auch beide reinbringen und dann einfach mal schauen, was genutzt wird. Bisher ist das so meine präferierte Idee.

  • Ich habs auf einem Repo, aber das ist privat auf meinem Server.

    Das war mir schon klar, mir ging es mehr um den Zugriff aufs Repo, nicht, dass du eins hast.

    und das ist in C# auch nicht komplexer, als in anderen Sprachen.

    Ich weiß halt nicht, ob LUA da viel leichter ist. Regex ist zum Beispiel so ein Ding, von dem ich glaub, dass LUA das nicht von Haus aus kann, Roslyn kompiliert einfach nur einen String zu IL und führt den dann aus und Regex ist glaub ich teil der mscorlib, das sollte also dann machbar sein. Aber du kannst dir auch ne ganz eigene Scriptsprache gönnen, Compiler und Interpreter schreiben ist witzig. :D

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!