Drexel's VidUp - Ein templatebasierter Youtube Uploader

Unterstütze das Forum mit einem kleinen Beitrag und sichere Fortbestand und Weiterentwicklung: Jetzt Unterstützer werden!
  • Ich weiß nicht, ob es schon mal angesprochen wurde - aber wenn ich im Template etwas ändere, sollte das doch auch auf alle schon gemappten Videos übertragen werden, oder?

    Also, als Beispiel, habe ich einen Schreibfehler im Template. Nun habe ich 100 Videos getaggt - und muss nun alle von Hand nacharbeiten, weil die Änderung im Template nicht auf die Videos übertragen wurde.


    Wird das noch eingebaut, oder soll das so sein?

    Im Prinzip ist das aktuell Work as intended, da die Informationen aus dem Template kopiert werden, um dann vor dem Upload noch bearbeitet werden zu können. In der ersten VidUp Version war das noch anders, da konnten die Werte vorm Upload nicht geändert werden, da sie direkt aus dem Template gesetzt wurden. :) Es kann unter Umständen sinnvoll sein, ich nehme das mal als geplantes Todo auf. Wobei das spätestens mühsam wird, wenn man Informationen angepasst hat, die Änderungen gehen dann beim zurücksetzen auf die Template Werte natürlich verloren. Aktuell hilft Videos wieder entfernen und neu hinzufügen.


    Und ein Feature Request wäre noch: Publish Times und Datum automatisiert per Template realisieren. Zb möchte ich Montags / Mittwochs / Freitags um 7:00Uhr jeweils eine Folge X vom Template Y publishen. Wäre sowas möglich? Weil aktuell muss man sich bei jedem einzelnen Video durch die Publishzeiten wühlen. Und wenn man zb nur eines pro Woche veröffentlichen will, ist das schon sehr mühsam, bei vielen Folgen.

    Jepp ist in Planung wie Foxhunter schon geschrieben hat, hier sieht man schon die GUI:

    RE: Drexel's VidUp - Ein templatebasierter Youtube Uploader



    Bin jetzt wieder aus dem Urlaub zurück und habe schon wieder angefangen zu basteln, habe an der Architektur nochmal grundsätzlich was geändert, überarbeite gerade den Playlist Support, die Serialisierung muss ich glaub ich nochmal überarbeiten und die Berechnung des Publish At Datums muss ich noch machen, das wird dann denke ich eine große neu Version mit vielen Fehlern. :D


    Mal sehen wann der Rest noch so kommt, bitte bedenke ich bin ein 1 Mann Projekt. ;)

  • Lang hats gedauert... Aber ich hab mich in meiner dritten Urlaubswoche, die ich zu Hause verbracht habe in der jeder freien Minute hingesetzt und an VidUp rumgebastel...


    Version 1.3.0.0 ist online: https://1drv.ms/u/s!AlNGd4g1Vh9rmHAvaCyZ5nvtOkDF?e=5vhucP

    Bitte beachten:

    1. Ich empfehle ein Backup Eures VidUp Ordners (Dokumente->VidUp)! Das Dateiformat der TemplateList Datei (templatelist.json im VidUp Ordner) hat sich leicht geändert, es hat jetzt das gleiche Format wie die UploadList (und die neue PlaylistList). Ihr müsst die Datei anpassen oder löschen, aber anpassen ist relativ easy. Vorher sah die Datei so aus:

    Code
    [
    {
    "guid": "1b21f88f-d3ed-411f-89ea-e6bb4e532b07",
    ...
    },
    {
    "guid": "9112541b-19da-4678-acec-50f64d8f13f1",
    ...
    }
    ]

    Jetzt muss sie so aussehen:

    Ihr müsst also einmal ganz an den Anfang der Datei, noch vor der eckigen Klammer '{"templates":' und am Ender der Datei, nach der eckigen Klammer '}' einfügen. Formatierungen wie Zeilenumbrüche sind egal, das wird spätestens beim nächsten Speichern in der App wieder formatiert weggeschrieben.


    2. Durch die neue Playlistverwaltung verliert Ihr Eure Playlisteinstellungen sowohl in den Templates als auch in den Uploads beim ersten Speichern. Das könnt Ihr verhindern, indem Ihr Euch selbst eine playlistlist.json im VidUp Ordner anlegt und die Playlist IDs, die Ihr bis jetzt verwendet habt dort eintragt. Die Datei muss folgenden Inhalt haben, natürlich mit beliebig vielen Playlists, hier sinds 2:

    Unter "playlistId" muss das eingetragen werden, was Ihr bisher in der App eingetragen habt, unter "name" ist völlig egal was Ihr eintragt, unter "created" und "lastModified" ist es prinzipiell auch egal, es muss nur in diesem Format sein.

    Mehr zu den Playlists weiter unten.


    Sollte es beim Editieren der Dateien Problem geben, kann ich Euch gerne helfen.



    Folgendes hat sich geändert:


    Neue Features:

    • Es gibt jetzt eine automatische Upload Planung! Erklärungen dazu siehe unten.
    • Es gibt jetzt eine Playlist Verwaltung. Erklärungen dazu siehe unten.
    • Sollte ein Upload durch einen Verbindungsabbruch unterbrochen werden, wird noch bis zu 2 Mal verscuht, den Chunk (10MB Paket) hochzuladen. Vor dem Versuch wird 2 Sekunden pausiert, um bei einer 24h Zwangstrennung z.B. dem Router für den Reconnect ein wenig Zeit einzuräumen.

    Bugfixes

    • Das Ersetzen der Rautemarkierungen wird jetzt nur auf den Dateinamen und nicht auf den ganzen Dateipfad angewendet. PKLetsPlay
    • Die Total MB Left werden wieder korrekt angezeigt. yollum Bei mir hat sich der Zähler so oder so nicht verändet, mit Upload pausieren und wieder starten habe ich jetzt aktuell keine Probleme mehr mit dem Stat, sollte bei Dir noch was nicht passen lass es mich wissen.
    • Der Status eines Uploads kann jetzt während des Uploadvorgangs nicht mehr geändert werden.


    Zur automatischen Upload Planung:

    Geplant wird im Template Tab, dafür den Button 'Publish At Schedule' im Template aktivieren, dann erscheint daneben ein Button mit einem Stift zum editieren des Zeitplans. Es können tägliche, wöchentliche und monatliche Uploads geplant werden. Man kann auch nur jede/n 1./2./3. etc Tag/Woche/Monat eine Veröffentlichung planen. Normalerweise wird mit einem Video und einer Veröffentlichungsuhrzeit pro Tag geplant. Wenn der Button 'Advanced Schedule' aktiviert wird, können auch bis zu 3 Veröffentlichungen pro Tag mit unterschiedlichen Uhrzeiten geplant werden. Bei wöchentlicher Planung können die Tage ausgewählt werden und monatlich die Daten oder relative Angaben zum Tag (erster Dienstag im Monat, vorletzter Freitag im Monat etc...) Ein Upload wird mindestens 24 Stunden voraus geplant damit Upload und Youtube etwas Zeit haben...

    Mal ein Beispiel:

    Ich erstelle heute eine neue Zeitplanung, Schedule täglich, jeden zweiten Tag mit Advanced Schedule, am ersten Tag soll ein Video um 11 und am zweiten Tag soll ein Video um 16 Uhr veröffentlicht werden. Tag 1 ist heute (Samstag), da kann aber nicht veröffentlicht werden, da es weniger als 24 Stunden sind. Der nächste Tag ist Montag, da wird dann um 16 Uhr veröffentlicht, da es vom internen Starttag ausgehen der zweite Tag ist. Danach kommen dann Mittwoch 11 Uhr, Freitag 16 Uhr, Sonntag 11 Uhr etc...

    Im Upload Tab kann man einen neuen Starttag setzen, oben im Ribbon unter 'Recalculate Publish At Dates' kann man die Daten mit einem neuem Startdatum neu kalkulieren lassen, das Datum ist dann Tag 1 für die Reihe. Alle vorangegangen Uploads werden dann ignoriert.

    Im Hintergrund merkt sich die App schon hochgeladene Videos, d.h. selbst wenn Ihr sie aus dem Upload Tab löscht, werden die zukünftig berechneten 'Publish At' Daten schon vorhandene Uploads berücksichtigen.

    Werden Videos eines Templates mit Publish At Schedule hinzugefügt, werden die Publish At Daten automatisch berechnet.


    Klingt evtl. etwas kompliziert, probiert es einfach mal aus, so schwierig ist es eigentlich nicht. ;)


    Zur Template Verwaltung:

    Es gibt jetzt einen neuen Ribbon Tab 'Playlists', da könnt Ihr Playlists eintragen, nach wie vor manuell mit der Playlist ID und einem Titel, der muss nicht der gleiche wie in Youtube sein. Dann können die Playlists im Template und im Upload per Dropdown ausgewählt werden und müssen nicht überall manuell eingetragen werden. Schicker wär immer noch sie von Youtube abzurufen, aber ich wollte nicht einfach alle Playlists laden, das wird auf größeren Kanälen auch unübersichtlich, da ja in der Regel nicht alle gebraucht werden. Dann hätte ich noch einen Mechanismus einfügen müssen, der den User fragt, welche Playlists er wirklich gebraucht. Das ist schonmal ein Zwischenschritt, evtl. kommt der Rest ja noch. ;)




    Insgesamt war die ganz Publish At Schedule Implementierung ein ziemlicher Pain in the Ass und hat deutlich länger gebraucht als ich gedacht hatte. Die Gui war reichlich kompliziert und der Validierungscode ist an der völlig falschen Stelle, da muss ich nochmal ran später. Die Logik der Berechnung hat mich echt verzweifeln lassen, ich habe 3 oder 4 Iterationen gebraucht, bis ich ein einheitliches Vorgehen für alle Varianten hatte, das hat allein einen Tag gedauert. Als ich die erste Version vom täglichen und wöchentlichen Schedule fertig hatte, funktionierten die völlig unterschiedlich und auch nicht richtig. xD Ich weiß noch nichtmals genau warum, aber irgendwie habe ich den richtigen Dreh erstmal nicht gefunden. Aber irgendwann beim Überarbeiten der wöchentlichen Planung bin ich dann auf eine gute und für alle Varianten anwendbare Struktur gekommen, von da an ging es dann relativ gut... Dann musste ich den bisherigen Publish At Teil des Uploads auch nochmal überarbeiten... Unterm Strich hat mich das ein paar Tage gekostet, so lange hab ich noch nie an einer VidUp Funktion gesessen...


    Unter der Haube hat sich auch noch eine Menge getan, ich habe weitere Funktionen aus dem MainWindow entfernt und dort platziert wo sie im Kontext sinnvoller sind, das macht es zukünftig einfacher, und da gibt es auch immer noch was zu tun, ich möchte auch die Ribbon Funktionen noch vom eigentlich Fensterinhalt trennen, das verwirrt mich im Moment teilweise, wenn ich nicht direkt sehe, ob z.B. eine KomboBox zum Ribbon oder zur Upload Maske gehört z.B.

    Ich habe weitere Tests geschrieben um zukünftige Fehler besser vermeiden zu können und ich habe den gesamten Speichervorgang überarbeitet. Puh. :)


    Immerhin 20 Commits für diesen Release, ich glaub so viele waren es auch noch nie...


    Edit: Ach ja aufgrund der umfangreichen Änderungen erwarte ich einige Bugs, also viel Spaß beim Tes... äh hochladen! :)

  • Haha danke, ich hab mir auch gedacht, bevor ich diese Woche was aufnehme, mach ich lieber was anderes und setze mich ins gleiche Zimmer und programmier ein weg. ;)


    Es ist immer wieder schön alten Code zu überarbeiten, egal ob er von gestern oder von vor 3 Monaten ist. Wir war es z.B. absolut schleierhaft, warum die TemplateList anders serialisiert wird als die UploadList... Wahrscheinlich lagen ein paar andere Sachen dazwischen... Aber man ist halt immer erstmal froh wenn Code einfach läuft. Schön machen kommt später, wobei einem das auch gerne auf die Füße fällt früher oder später. :)

  • Wow, das musste ich doch gleich mal testen und das Planen für jeden zweiten Tag funktioniert super. Auch die Anzeige Total MB left funktioniert wieder :)

    Aber wäre ja langweilig, wenn ich nichts finden würde ;) Ich habe eben einen Upload gestartet. Der läuft auch wunderbar, allerdings wird direkt beim Start des Uploads bei Upload Ended '01.01.0001 00:00' angezeigt. Ist jetzt auch wieder nur eine Kleinigkeit.


    Auf jeden Fall vielen, vielen Dank für die Möglichlkeit die Uploads nun planen zu können. Das hilft wirklich weiter. Und dann auch noch mit so vielen Möglichkeiten, respekt!

  • Ah sehr gut, kleiner Hintergrund dazu: DateTime kann in C# nicht Null (nicht gesetzt) sein, hatte das Datum immer auf den 01.01.01 gesetzt und wenn das Datum 01.01.01 war, hab ich als nicht gesetzt angenommen und nicht angezeigt. Ich hab das aber jetzt in einen Nullable Type umgewandelt, so dass es jetzt quasi doch Null sein kann, evtl gibt es noch irgendwo ne Stelle wo es auf 01.01.01 gesetzt wird, statt auf null, das schau ich mir an...

  • So direkt mal ein kleiner Bugfix hinterher:


    Version 1.3.0.1 ist online: https://1drv.ms/u/s!AlNGd4g1Vh9rmHAvaCyZ5nvtOkDF?e=5vhucP


    Wer von 1.2.x.x kommt, sollte natürlich immer noch RE: Drexel's VidUp - Ein templatebasierter Youtube Uploader beachten.


    Folgendes hat sich geändert:


    Bugfixes

    • Upload Ended wird jetzt korrekt angezeigt yollum , war genauso wie ich gesagt habe. :)
    • Die Total MB Left werden nicht mehr negativ, wenn ein Upload gefailt ist, aber die Datei nicht mehr existiert und schon Bytes hochgeladen hatte...

    Vor weiteren größeren funktionellen Updates möchte ich übrigens erst an ein paar weiteren Sachen feilen, nochmal Code aufräumen, ein Logging/Tracing hinzufügen, die Performance des Drag & Drops in der Upload Liste verbessern (das lagt immer son bißchen, weil ich de rGUi einfach sage, sie soll die Liste komplett neu aufbauen, wenn ich ihr konkret die Änderung an der Liste mitteile sollte das evtl. beser gehen), evtl. Änderungen von PKLetsPlay einbauen, wenn er sie mir zur Verfügung stellt etc. Essentielle neue Features sehe ich im Moment auch nicht. Im ersten Post sehen ja noch Dinge, die ich einbauen möchte. Kleinigkeiten wie 'Automatisches Templates Setzen optional anhand des Dateinamens und nicht nach Ordner Pfad' mach ich evtl. bei der Wartung, aber nix weltbewegendes.

  • Hab einen Bug gefunden, der mir auch schon gemeldet wurde, den ich aber jetzt erst identifizieren konnte:


    Manchmal greif ich auf einen WbeException Objekt zu, das schon disposed wurde, dann kommt folgender Fehler (o.ä.) und bringt die App komplett zum Absturz:


    Kann ich morgen easy fixen.


    Jetzt hab ich gerade selbst was neues, hab was hochgeladen wo ich nicht zu Hause und bekomme jetzt beim Start folgenden Fehler


    Muss ich mir mal anschauen....


    Edit: OK übel er hat mir meine uploads.json geschreddert....

  • Und noch ein Bugfix Release:


    Version 1.3.0.2 ist online: https://1drv.ms/u/s!AlNGd4g1Vh9rmHAvaCyZ5nvtOkDF?e=5vhucP


    Wer von 1.2.x.x kommt, sollte natürlich immer noch RE: Drexel's VidUp - Ein templatebasierter Youtube Uploader beachten.


    Folgendes hat sich geändert:


    Bugfixes

    • Post Upload Action Sleep Mode wird jetzt wieder korrekt angewendet, sofern eingestellt.
    • Es sollte nicht mehr auf eine disposte WebException zugegriffen werden und somit die App nicht mehr abstürzen.
    • Bug in der Deserialisierung behoben.


    Beim Suchen nach dem WebException Fehler und dem Problem mit der geschredderten uplaods.json Datei ist mir noch aufgefallen, dass der Sleep Mode nicht mehr funktioniert und ich einen ziemlich üblen Fehler in der Deserialisierung hatte, der dafür gesorgt hat, dass es intern 2 Template Listen nach dem Laden der JSON Dateien gibt...


    Warum es mir einmal die uploads.json geschreddert hatte, konnte ich noch nicht nachvollziehen. Muss ich erstmal beobachten, ob es nochmal vorkommt, sollte das bei Euch mal auftreten, lasst es mich unbedingt wissen... Das zeigt sich, indem er schon beim Laden der App mit einem Deserialisierungs Fehler abstürzt... Object reference not set to an instance of an object ist glaub ich die Fehlermeldung.

  • Ich habs kaputt bekommen :D

    Hab nur ein Update gemacht, und die templatelist.json angepasst. Aber auch wenn ich die rausnehme, gibt es folgenden Fehler:



    EDIT:

    Hab die diversen json Dateien mal rausgenommen, einzeln nacheinander. Brachte nichts. Dann den ganzen VidUp Ordner unter Dokumente gelöscht. Gleicher Fehler, Ordner wird neu erstellt, ist aber bis auf die Unterordner leer.

  • Es liegt auch nicht am JSON selbst, sondern daran, dass er den JSON Serializer nicht laden kann. Ich muss nachher mal schauen, ob an Deinem Zip Archiv evtl was falsch ist, bei mir macht er die Probleme nicht. Aber ich hab's ja übers Setup installiert.

    Kannst mal schauen ob die Irgendwas.JSON.dll überhaupt im Programverzeichnis ist. Und wenn ja was sagen die ganzen Versionsinformationen in den Dateieigenschaften?

  • Ok, es war mein Fehler, bzw. Faulheit :D

    Starte VidUp immer per Kommandozeile, das entsprechende CMD Fenster war noch offen, und ich wollte, wie bislang, immer die VidUp.Ui.exe starten. Die gibts aber nicht mehr. Starte jetzt die VidUp.exe und naja...läuft :saint: Entschuldigung :D

  • Ach ja das hatte ich auch mal geändert, dachte das wäre nicht erwähnenswert. :D

    Für alle außer mir nicht, ne :D Hatte die neuen Versionen immer per Drag & Drop entpackt, und die Datei ist dann natürlich stehen geblieben. Hatte eben mal abgeglichen mit der Zip und festgestellt, dass in der Zip weniger Dateien sind, und dann mal alles neu gemacht. Und dann kam die Meldung in der Konsole, dass ich die Datei nicht starten kann...weil sie weg ist :/:D Hab immer noch keinen Plan warum mein Server das Setup nicht frisst. Im Herbst kommt ein neuer Server dazu für Emby, dann versuche ich es mal darüber.

  • Na das freut mich doch zu hören, geht mir auch so, wobei ich glaub ich max 50% der Features von VidUp nutze.


    Die Tage ist bei mir beim Upload über Nacht 1-2 Stunden das Internet weg gewesen, da sind natürlich alle Uploads fehlgeschlagen. Jetzt überlege ich sowas wie ne Endlosschleife einzubauen, dass in so einem Fall es alle 10 Minuten wieder probiert wird, so lange noch fehlgeschlagene Videos vorhanden sind. =) Wobei das auch blöd wäre, wenn es aus anderen Gründen immer wieder fehl schlägt...

  • Frei einstellbar, "Bei Fehlern X Wiederholungen durchführen" und "0 = keine" und nen Haken für "ohne Begrenzung"...


    Dann noch je nach Fehler unterschiedlich, zB. bei fehlendem Internet (man kann ja nen Ping schicken) warten bis das Internet zurück ist...

Jetzt mitmachen!

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