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

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

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

      Anzeige
      Disclaimer: Dieses Programm befindet sich aktuell im Beta-Status. Verschiedene Funktionen fehlen und es werden auch noch nicht alle Bedingungen der Youtube-Dev-Api-Bedingungen erfüllt (z. B. enthält das Programm noch keine Möglichkeit, sich selbstständig zu aktualisieren).

      Übersicht

      [IMG:https://abload.de/img/stfu-mainpocmh.png]

      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. :)

      In der ersten Beta ist der STFU lediglich ein kleines Programm, das Ordner auf der Festplatte überwacht und beim Finden eines neuen Videos in einem dieser Ordner automatisch den Upload startet. Dank eines Template-Systems kann es Beschreibung, Titel usw. dynamisch laden, beispielsweise aus einer Textdatei auf der Festplatte anhand des Dateinamens. Außerdem kann das Programm die Veröffentlichung von Videos planen.

      Voraussetzungen

      Es muss das .NET Framework in der Version 4.5.2 oder höher (link) installiert sein. Aktuell läuft der Uploader nur auf Windows.

      Download

      Die Versionen des STFU werden von mir vorerst via Google Drive (link) gehostet.
      Aktuelle Version: STFU-v0.2.2-BETA.zip

      Video-Tutorial



      Text-Anleitung

      (Work in Progress: Eine genauere und ausführlichere Anleitung mit Bildern wird hier nach und nach entstehen. Wenn etwas unklar ist, einfach fragen! :) )
      • Installiert euch zuerst das .NET Framework in der Version 4.6.1 oder höher
      • Nachdem ihr die ZIP runtergeladen und entpackt habt (Download-Link am Ende dieses Beitrags), könnt ihr das Programm starten. Es erwartet euch nun erst mal ein leeres Fenster.
      • Der erste Schritt ist das Verbinden eines Accounts: Dazu oben im Menü auf "Verwalten" klicken und dort den entsprechenden Menüeintrag auswählen.
        Es öffnet sich ein Fenster, das euch einen Link zum Aufrufen angibt. Diesen müsst ihr in einem Browser öffnen (ein eigener Browser ist im Programm noch nicht eingebaut), euch anmelden und erhaltet nach Abschluss einen Code, den ihr in das leere Feld im Uploader kopieren müsst.

        Nach der Bestätigung verbindet sich der Uploader mit eurem Account.
      • Sobald das geschehen ist, könnt ihr Templates verwalten. Dazu ebenfalls wieder oben ins Menü und dort die Template-Übersicht öffnen.
        Die Bearbeitung sollte recht selbsterklärend sein, wie die automatische Veröffentlichungsplanung und das Ändern von Feldern anhand der gerade hochgeladenen Datei durchgeführt wird, erfahrt ihr in einem Punkt weiter unten. Das Standard-Template existiert immer. Es kann zwar umbenannt, aber nicht gelöscht werden.
      • Mit angelegten Templates können nun Pfade zur Überwachung ausgewählt werden, wieder oben übers Menü "Verwalten". Im Pfad-Fenster könnt ihr nun einzeln Pfade auswählen, die vom Uploader überwacht werden sollen. Außerdem könnt ihr bei den Pfaden folgendes einstellen:
        - Dateifilter: Hier könnt ihr die Dateien filtern lassen. Der Standardfilter *.mp4;*.mkv findet sämtliche Dateien, die entweder mit .mp4 oder mit .mkv enden.
        - Unterverzeichnisse: Wenn diese Option angehakt ist, werden Unterordner auch durchsucht.
        - Versteckte Ordner: Wenn diese Option aktiviert ist, werden auch versteckte Unterordner durchsucht. Mit dieser Option solltet ihr sehr vorsichtig umgehen.
        - Inaktiv: Damit könnt ihr den Pfad dauerhaft deaktivieren. Er wird dann vom Uploader nicht mehr durchsucht, bis ihr den Haken wieder entfernt.
      • Sobald ihr Pfade angelegt habt, könnt ihr die Überwachung starten. Ihr seht dann als erstes ein Fenster, in dem ihr für jeden Pfad verschiedene Parameter einstellen könnt, beispielsweise dass Videos dieses Pfades dieses mal privat hochgeladen werden sollen oder der Pfad dieses mal ignoriert werden soll. Nach der Bestätigung dieses Dialogs startet die Überwachung.

        Der Uploader markiert erfolgreich hochgeladene Videodateien, indem er das erste Zeichen des Dateinamens durch einen Unterstrich ersetzt (aus Diablo-001.mkv macht er nach dem Upload _iablo-001.mkv). Wenn ihr also nicht wollt, dass der Uploader ein Video hochlädt, dann benennt es vor dem Start der Überwachung um, sodass der Dateiname mit einem Unterstrich beginnt. Wollt ihr ein Video erneut hochladen (z. B. weil es einen Fehler beim Upload gab), dann ersetzt den Unterstrich wieder durch das Zeichen, das da vorher war. Dann wird der Uploader es wieder finden und erneut hochladen.

        Achtung: Der Uploader findet die Videodateien im Moment noch alphabetisch sortiert, nicht nach Erstellungsdatum oder ähnlichem


      Veröffentlichungsplanung

      Der Uploader kann die Veröffentlichung automatisch planen. Dafür gibt es im Template-Fenster einen eigenen Punkt. Hier könnt ihr die Tage, an denen ein Video veröffentlicht werden soll, auswählen und hinzufügen. Beim Start könnt ihr den Tag, an dem das erste Video hochgeladen wird, auswählen. Der Uploader findet für den angegebenen Zeitraum den besten passenden Punkt in der Liste und geht dann von dort die Liste nach und nach ab. Ist er unten angekommen, fängt er wieder ganz oben an.

      Ein besonderes Feature ist noch die Möglichkeit, Tage überspringen zu können. Dies kann für markierte Tage mittels der Buttons +1, -1, +7 und -7 festgelegt werden:
      Vereinfacht gesagt kann mit diesen Buttons eingestellt werden, dass der Uploader sich einen Veröffentlichungstermin merkt, als er beim Upload des Videos angegeben hat.

      Will man beispielsweise ein Video alle zwei Wochen Montags veröffentlichen, wäre das möglich, indem man den Montag in die Liste hinzufügt, ihn auswählt und mithilfe des +7-Buttons (oder siebenmal des +1-Buttons) auf +7 stellt.
      Beim Upload funktioniert nun folgendes, wenn beispielsweise der Startzeitpunkt für Veröffentlichungen auf Montag, den 01.10.2018 gestellt ist:
      • Der Uploader findet das erste Video, lädt es hoch und plant es auf den 01.10.2018.
      • Aufgrund der für den Montag eingestellten +7 rechnet er 7 Tage auf das Datum, das er sich intern merkt, drauf. Er belügt sich also selbst und tut so, als hätte er den 08.10.2018 für die Veröffentlichung eingestellt.
      • Beim nächsten Video sucht er vom 08.10.2018 ausgehend den nächsten Zeitpunkt für die Veröffentlichung, und das ist Montag, der 15.10.2018.
      • Er merkt sich aber aufgrund der +7 wiederrum den 22.10.2018 als Veröffentlichungszeitpunkt usw.
      Achtung: Dieses Feature ist minutengenau und eine Anpassung von Stunden und Minuten ist leider noch nicht möglich.
      Das bedeutet, dass das Feature unter Umständen bei unterschiedlichen Uhrzeiten leider nicht funktioniert. Beispiel: Montag 15 Uhr mit +1 und Dienstag 17 Uhr:
      • Der Uploader findet das erste Video, lädt es hoch und plant es auf den Montag, 15 Uhr.
      • Aufgrund des +1 merkt er sich intern den Dienstag, 15 Uhr.
      • Beim nächsten Video sucht er vom Dienstag, 15 Uhr ausgehend den nächsten Termin für die Veröffentlichung, und das ist der Dienstag, 17 Uhr. Er überspringt den Termin also nicht. Dienstag bis 15 Uhr würde übersprungen werden, Dienstag ab 15:01 Uhr nicht.
      Dieses Feature ist noch etwas kompliziert und in Textform schwierig zu erklären. Es wird definitiv ein Video-Tutorial dazu geben und ich werde den Text hier noch ein paar mal überarbeiten. Falls ihr Fragen zum Feature habt, gerne stellen! :)

      Dynamische Werte

      Der Uploader kann in den Feldern Titel, Beschreibung, Tags und Thumbnail-Pfad dynamische Werte vergeben, um beispielsweise die Beschreibung des Videos anhand des Dateinamens des hochzuladenen Videos dynamisch aus einer Textdatei nachzuladen.

      Dazu habe ich eine so eine Art ganz kleine Skripsprache entworfen, die dazu genutzt werden kann. Um diese Skriptsprache zu nutzen, muss der Befehl in den entsprechenden Feldern zwischen < und > gesetzt werden (diese Zeichen eigenen sich gut, da sie von Youtube weder in Titel, noch in Beschreibung und Tags erlaubt sind).
      Da ich gerade absolut keine Ahnung habe, wie ich das am besten erklären soll, nur schnell der Hinweis, dass es im Template-Fenster dazu einen eigenen Tab gibt, und zusätzlich noch ein paar Beispiele: :D

      Quellcode

      1. Anmerkung: Bei allen Beispielen ist Groß- und Kleinschreibung egal und kann je nach persönlicher Vorliebe umgesetzt werden. Der Uploader ignoriert Groß- und Kleinschreibung.
      2. ---> Um den Titel des Videos auf den Dateinamen ohne Erweiterung zu setzen, folgendes im Titelfeld eingeben:
      3. <filename>
      4. ---> <filename> ist eine Variable, die automatisch durch den Dateinamen des Videos ersetzt wird. Weitere Variablen sind im Textfeld im Variablen-Tab im Template-Fenster gelistet.
      5. ---> Um das Thumbnail zum Video automatisch von einer Datei zu laden, die unter einem gewissen Pfad zu finden ist, wenn das Thumbnail genauso wie das Video heißt, beispielsweise folgendes im Thumbnail-Path eingeben:
      6. C:\Beispiel\Pfad\<filename>.png
      7. <filename> dann automatisch durch den Dateinamen des Videos ersetzt. Beim Video "diablo3.mkv" würde er dann den Pfad C:\Beispiel\Pfad\diablo3.png suchen.
      8. ---> Um die Beschreibung aus einer Textdatei, die genauso heißt wie das Video, von einem Pfad zu laden, könnt ihr folgendes in das Beschreibungsfeld eingeben:
      9. <ReadFile(C:\Beispiel\Pfad\<filename>.txt)>
      10. ---> ReadFile(PFAD) liest den Inhalt einer Datei aus. ACHTUNG: Hier werden keine Anführungszeichen verwendet!
      11. ---> Um aus dem Dateinamen die erste Zahl auszulesen (bspw. aus dem Dateinamen "Diablo-001.mkv" das 001), folgendes schreiben:
      12. <filename.findnumber(1)>
      13. ---> .findnumber(X) findet die X-te Zahl im Text MIT FÜHRENDEN NULLEN (!).
      14. ---> Selbes Beispiel, aber ohne führende Nullen:
      15. <filename.findnumber(1).removeleadingzeroes()>
      16. ---> Ergebnis bei "Diablo-001.mkv": 1
      17. ---> Aus Diablo3-001.mkv die 001 auslesen:
      18. <filename.findnumber(2)>
      19. ---> Aus einer Datei, die so heißt, wie die Partnummer, die Beschreibung automatisch auslesen:
      20. <ReadFile(C:\Beispiel\Pfad\<filename.findnumber(1)>.txt>
      21. ---> Würde für "Diablo-001.mkv" den Dateiinhalt von "C:\Beispiel\Pfad\001.txt" auslesen
      22. ---> Aus einer eingelesenen Datei die dritte Zahl ohne führende Nullen herausfinden (warum auch immer man das tun sollte):
      23. <ReadFile(C:\Beispiel\Pfad\test.txt).findnumber(3).removeleadingzeroes()>
      24. ---> Aus einer eingelesenen Datei nur die ersten fünf Zeichen einlesen:
      25. <ReadFile(C:\Beispiel\Pfad\test.txt).substring(0,5)>
      26. ---> .substring(X, Y) übernimmt aus dem Text nur die ersten Y Zeichen ab Stelle X. Das geht natürlich auch bei filename oder anderen Variablen.
      Alles anzeigen

      Ihr könnt außerdem häufig gebrauchte Funktionen als eigene Variable speichern.
      Wenn ihr beispielsweise <filename.findnumber(1)> mehrfach benötigt, um die Partnummer aus dem Dateinamen auszulesen, könnt ihr im Tab "Variablen" unten eine eigene Variable anlegen, diese z. B. partnummer nennen und ihr den Wert <filename.findnumber(1)> zuweisen. Anschließend könnt ihr überall <partnummer> verwenden, um dort die Zahl automatisch zu erhalten.


      Auch hier wird es ein Video-Tutorial geben und ich werde den Text noch mal deutlich überarbeiten. Wenn ihr Fragen habt, gerne stellen.
      Die Funktion ist nicht ganz so selbsterklärend, ich helfe da gerne.
      Es sind noch weitere Methoden geplant (z. B. JSON oder XML auslesen), wenn ihr Vorschläge habt, bin ich dafür natürlich auch offen.

      Releaseplanung (Stand: 22.09.2018)

      Kann sich natürlich ändern, sollten andere Features zuerst gewünscht werden.

      • BETA v0.1.0
      • Skriptfunktion verbessern und fertigstellen
      • Veröffentlichungsplanung verbessern und fertigstellen
      • Englische Lokalisierung
      • Linux- und Mac-Support
      • Youtube-API-Bedingungen erfüllen (z. B. selbstständiges Update und Anzeige von Nutzungsbedingungen u. ä.)
      • => Vollversion v1.0.0
      • Möglichkeit, mehr als einen Account nutzen zu können
      • Möglichkeit, mehr als ein Video gleichzeitig hochladen zu können
      • Möglichkeit, mehrere Pfade zusammen überwachen zu lassen
      • Möglichkeit, andere Sortierungen bei den gefunden Videos einzustellen
      • => Vollversion v.1.1.0
      • Client-Server-Funktionalität einbinden: Steuerung eines Uploaders durch einen anderen Uploader (Beispiel: Uploader auf Raspberry Pi mittels Uploader auf dem eigenen Windows-PC fernsteuern)
      • Upload von Videos über anderen Uploader (Beispiel: Windows-PC kodiert Video, Uploader auf Windows-PC schickt das Video automatisch an Uploader auf Raspberry Pi, Uploader auf Raspberry Pi lädt Video hoch)
      • ...
      • => Vollversion v1.2.0
      • (ab hier noch nicht geplant)


      Bekannte Bugs

      • Scheinbar funktioniert das Beenden nach dem Upload nicht immer korrekt (wird gerade analysiert)
      You like music? I like pissing.
      ~Corey Taylor

      Dieser Beitrag wurde bereits 20 mal editiert, zuletzt von strohi ()

    • 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*
      You like music? I like pissing.
      ~Corey Taylor

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von strohi ()

    • Anzeige
      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
      You like music? I like pissing.
      ~Corey Taylor
    • 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. :)

      sem schrieb:

      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.

      sem schrieb:

      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


      sem schrieb:

      Gibts den Code auch auf Github?
      • In einer alten Version. Ich bin vor einiger Zeit auf ein privates Repo umgezogen.


      sem schrieb:

      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.
      You like music? I like pissing.
      ~Corey Taylor
    • 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.

      strohi schrieb:

      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.
      Du findest mich auf YouTube! Wenn du magst schau dir das YouTube Center an. Wir sehen uns - bis dahin: Alles Liebe Vincent
    • @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: regex101.com/

      Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von ValcryTV ()

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

      VincentLP schrieb:

      (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

      ValcryTV schrieb:

      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

      ValcryTV schrieb:

      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. :)
      You like music? I like pissing.
      ~Corey Taylor

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von strohi ()

    • strohi schrieb:

      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
      Du findest mich auf YouTube! Wenn du magst schau dir das YouTube Center an. Wir sehen uns - bis dahin: Alles Liebe Vincent
    • VincentLP schrieb:

      Ü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. :)
      You like music? I like pissing.
      ~Corey Taylor
    • strohi schrieb:

      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: :)
      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
      Du findest mich auf YouTube! Wenn du magst schau dir das YouTube Center an. Wir sehen uns - bis dahin: Alles Liebe 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...
      Grüße, GLaDOS

      "Do you know who I am? I'm the man whose gonna burn your house down - with the lemons! I'm gonna get my engineers to invent a combustible lemon that'll burn your house down!" - Cave Johnson, CEO of Aperture Science

      YouTube: Max Play

      Rechtschreibung und Grammatik sind eine Tugend, aber jeder macht mal Fehler...
    • GLaDOS schrieb:

      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.

      GLaDOS schrieb:

      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.
      You like music? I like pissing.
      ~Corey Taylor

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von strohi ()

    • strohi schrieb:

      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.

      strohi schrieb:

      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
      Grüße, GLaDOS

      "Do you know who I am? I'm the man whose gonna burn your house down - with the lemons! I'm gonna get my engineers to invent a combustible lemon that'll burn your house down!" - Cave Johnson, CEO of Aperture Science

      YouTube: Max Play

      Rechtschreibung und Grammatik sind eine Tugend, aber jeder macht mal Fehler...
    • ValcryTV schrieb:

      Moonsharp sieht interessant aus, scheint aber seit 2016 verwaist zu sein.
      Naja, LUA hat sich jetzt ja auch nicht wirklich weiterentwickelt... Also von 5.2 auf 5.3.1 ists jetzt auch nicht so weit.

      Hab den Code übrigens inzwischen gesehen. Sieht gut aus. Braver @strohi.
      Grüße, GLaDOS

      "Do you know who I am? I'm the man whose gonna burn your house down - with the lemons! I'm gonna get my engineers to invent a combustible lemon that'll burn your house down!" - Cave Johnson, CEO of Aperture Science

      YouTube: Max Play

      Rechtschreibung und Grammatik sind eine Tugend, aber jeder macht mal Fehler...