Beiträge von Drexel

    So es ist so weit, ich habe zum ersten Mal die API Credentials geändert, da jetzt anscheinend auch Spammer meine Zugangsdaten entdeckt haben, gestern wurden 1500 Kommentare erstellt und 2000 Videobewertungen abgegeben über mein API Projekt, VidUp macht das definitiv nicht...


    Ich hab ehrlich gesagt nie getestet, wie die Versionen reagieren, wenn die API Credentials nicht mehr gültig sind, vermutlich schlägt VidUp vor, sich erneut einzuloggen, wenn der Fehler anhält. :) Muss ich morgen mal testen, wenn die alten Daten endgültig nicht mehr gültig sind, die behalten noch 24h ihre Gültigkeit.


    Als ersten Schritt werde ich das weiter beobachten und jedes Mal die API Daten resetten, wenn ich was verdächtiges sehe, das bedeutet leider auch immer eine neue Version. Wenn das nicht hilft, muss ich mir doch mal was in Richtung Obfuscating überlegen und sehen ob das hilft, wobei der offene Quelltext da eher hinderlich ist.


    Gibt auch ein paar kleinere Bugfixes und Improvements, insgesamt sollte VidUp nicht mehr so speicherhungrig beim Upload sein, das ging ja vorher bis 1GB rauf. Ich lese nach wie vor die Daten im Voraus im Block in den RAM, bis zu ca 150MB, aber mehr als 500MB Speicher sollte VidUp jetzt nicht mehr verbrauchen.

    https://www.vidup.info/2022-01-12-vidup-1-13-0/

    Wie De-M-oN Du encodierst jetzt mit B-Frames, das ist rechenintensiver, aber die Dateien werden kleiner.


    Edit: Bzw. Du hast in Deiner GOP die B-Frames deaktiviert, das macht die Erklärung zu nichte, aber stell mal 2 aufeinanderfolgende B-Frames ein... Das ist doch einer der größten Vorteil des RTX Encoders. =)


    Kann leider keinen Vergleich ziehen, da ich immer noch aufgrund der Preise mit meiner 1070 rumgammel...

    Spielst Du denn immer das gleiche Spiel? Oder bei welchem tritt es auf und bei welchem nicht? Je mehr das Spiel Dein System auslastet, desto problematischer kann es für OBS sein, wenn es auf dem gleichen Rechner läuft...

    Einfach nur hochladen und privat oder nicht gelistet lassen. Sobald die Verarbeitung der Soundspur durch ist (geht mit der SD-Stufe einher), bekommst du entweder einen Treffer über Content ID oder gar nichts, weil alles in Ordnung ist.

    Die Verarbeitung ist schon lange abgeschlossen, es geht ja auch um Videos, die gesperrt wurden, weil sie mit einer nicht verifizierten App hochgeladen wurden und nicht wegen des Inhalts. Das hab ich bei einem Video, das schon lange mit der Verarbeitung durch ist erst heute bei der Veröffentlichung gesehn.


    Wieso machst du es nicht so, dass der Nutzer seine eigenen Daten beantragen muss? Ist zwar umständlich, aber so vermeidest du solche Problem. Alternativ könntest du ja jdie Strings verschlüsseln, dann stehen die zumindest nicht im Klartext drin. Weiß ja nicht wie du das intern gemacht hast, ich mag .Net/C# nicht, weil damit geschriebene Software für mich "Open Source" ist. Die ganzen Decompiler sind schlicht "zu gut", früher gab es ja welche, die konnten ja sogar die gemangelten Funktionsnamen rekonstruieren. Die Obfuscator sind zwar nett, aber trotzdem total dämlich. Jemand der gut programmieren kann, kann den Quelltext trotzdem verstehen und wenn man Funktionen umbenennt, wird das ja auch direkt übernommtn, Stück für Stück. Native ist der Weg!

    Es geht einfach nicht, hab mich da auch schlau gemacht, google, stackoverflow etc. Alles was ich mache um die Credentials zu verschlüsseln, kann man ja im Code nachvollziehen und das gleiche tun um die Credentials zu entschlüsseln, ich müsste ja die Entschlüsselungskeys auch mitliefern. Klar ich könnte die auch zur Laufzeit von nem Server abrufen, aber auch das kann man alles einfach nachbauen und abfangen. Obfuscator drüber laufen lassen, aber auch das macht es nur schwieriger aber nicht unmöglich.

    Prinzipiell mag ich das Open Source Prinzip, die App ist ja auch Open Source. Das ganze Api Zugriffssystem ist einfach schwachsinnig, zumindest für Requests, die eh eine Google Account Authorisierung brauchen. Sollen sie doch einfach die Accounts mit Quota versehen und gegen Spam überwachen und ggf. die Accounts dicht machen, dann müsste sich jeder selbst drum kümmern und gerade stehen.

    Jetzt bin ich selbst Opfer meiner eigenen custom Credentials geworden. xD Außer ein Video zu veröffentlichen gibt es keine Möglichkeit zu sehen ob das gesperrt wird oder? ^^


    Mit Open Source hat das weniger zu tun, im Quellcode auf github sind die API Zugangsdaten nicht enthalten:

    https://github.com/Drexel2k/Vi…Up.Youtube/Credentials.cs


    Aber man kann die aus der exe bzw. dll extrahieren. Bei .Net/C# sogar sehr einfach. Es gäbe noch ein paar Möglichkeiten das zu erschweren, aber bei einer Desktop App gibt es keine 100%ige Sicherheit. Google schreibt auch selbst, dass die Secrets einer Desktop App nicht geheim sind: Installed apps are distributed to individual devices, and it is assumed that these apps cannot keep secrets. They can access Google APIs while the user is present at the app or when the app is running in the background.


    https://developers.google.com/…auth/installed-apps?hl=de


    Sie empfehlen da auch nur regelmäßig das Passwort zu erneuern, den Rest mach ich ja soweit es geht:

    https://support.google.com/googleapi/answer/6310037?hl=en

    https://www.vidup.info/2022-01…te-about-future-releases/


    Eigentlich hatte ich es erst nur hier geschrieben, aber dann doch auch auf der Homepage veröffentlicht. Aber da ich den Text eh auch auf deutsch habe:


    Kleines Update:


    1. Gestern war VidUp bei über 5.000.000 Quota Usage, das ist fast schon wieder am Limit, ich habe schon wieder mehr Quota beantragt. :)

    2. Mir ist in den API Statistiken zum ersten Mal aufgefallen, dass auch API Requests genutzt werden, die ich für VidUp gar nicht nutze:


    Request Anzahl
    youtube.api.v3.V3DataSearchService.List 1
    youtube.api.v3.V3DataLiveBroadcastService.Bind 2
    youtube.api.v3.V3DataLiveBroadcastService.Insert 2
    youtube.api.v3.V3DataLiveStreamService.Insert 2
    youtube.api.v3.V3DataChannelService.Update 5
    youtube.api.v3.V3DataLiveBroadcastService.List 5
    youtube.api.v3.V3DataLiveBroadcastService.Update 8
    youtube.api.v3.V3DataLiveStreamService.List 42


    Es sind nicht viele in 2 Wochen, Video Uploads sind 35.000 dagegen, dennoch scheint jemand meinen API Zugang zu nutzen. Das kann ich auch nicht verhindern, da die Zugangsaten aus einer Desktop APP halt raus zu bekommen sind. Dennoch werde ich dazu über gehen, mit jedem Release, die Zugangsdaten zu erneuern, quasi ein neues Passwort vergeben. Das hat zur Folge, dass die alten Versionen sofort nicht mehr nutzbar sind und die neue Version genutzt werden muss. Schade für die Leute die gerne länger bei einer alten Version bleiben, aber so ist es halt, wenige Penner verderben der Mehrheit immer den Spaß. Und nein es wird keine Auto Updater für die App geben, zumindest nicht von mir. :)


    3. Ich habe die VidUp Entwicklungsumgebung gestern auf Visual Studio 2022 geupdatet, bisher war es 2019 und auch das benötigte .NET Framework auf .NET6 angehoben. Wäre zwar nicht zwingend nötig gewesen, aber .NET6 soll auch an einigen Stellen performancetechnisch zugelegt haben, das kann ja nicht schaden. Also mit der nächsten Version wird .NET6 benötigt.

    Gerade gesehen: Das mit den eigenen API Credentials ist für die Tonne:

    All videos uploaded via the videos.insert endpoint from unverified API projects created after 28 July 2020 will be restricted to private viewing mode. To lift this restriction, each API project must undergo an audit to verify compliance with the Terms of Service. Please see the API Revision History for more details.


    https://developers.google.com/youtube/v3/docs/videos/insert

    https://developers.google.com/…#release_notes_07_28_2020

    GZ zu der neuen Quota. Nur frage ich mich, wie lange das halten wird. Soweit ich weiß nutzen ja nun echt viele, auch viele "Großen", dein Tool. Neulich wurde das sogar im Stream von Gronkh gepostet. Denke, daher kommen auch die vielen neuen Nutzer. China spielt wohl auch ganz groß mit.


    Wäre - seitens Google - noch mehr Quota drin irgendwann - oder müssen wir das Tool irgendwann aufgeben, weil es einfach zu viele nutzen?

    Bei Gronkh erwähnt? Nice xD Hast Du zufällig den Link zu dem Stream?


    Man kann bei Google jederzeit mehr Quota beantragen, gestern schrammte es knapp unter 4 Mio Verbrauch vorbei, mal sehen wie lang 6 Mio reichen...

    Da die App jetzt einmal verifiziert wurde und zum zweiten mal mehr Quota genehmigt wurde, bin ich guter Dinge, dass das zukünftig auch machbar sein wird. Wenn nicht muss wie gesagt jeder seinen eigenen API Zugang verwenden. Ich bin da auf jeden Fall von den jeweiligen Entscheidungen Googles abhängig, sollten große Steamer/Uploader das Tool verwenden, könnten diese natürlich im Falle einer Absage auch mal mehr öffentlichen Druck ausüben. Oder Google macht selbst mal son Tool und stellt mich als Produktmanager ein. xD

    Hm ok gut zu wissen, danke für die Rückmeldung. Behalte mal im Hinterkopf, falls noch jemand mit solchen Problemen ankommt. :)


    War kurz dafür Dir ne neue Testversion zu bauen. xD Hatte noch die Funktion im Verdacht, die Die Daten von der Platte in den RAM liest. Es ist so, dass ich ca 100MB in dem RAM lade und die bis auf 40MB droppen/hochladen lasse, um dann wieder 60MB nachzuladen. Ich hatte das gemacht, weil ich nicht wollte, dass kontinuierlich ein paar KB von der platte geladen werden beim Upload, sondern größere Mengen im Block, wenn man mit der Upload Drossel nebenher zockt oder sonstwas macht, dass es nicht permanent I/O gibt. Außerdem schwankt der Upload über die API immer etwas, da wollte ich auch mal vermeiden, dass die I/O Zugriffe da was bremsen, aber in der Richtung hat nix was gebracht.

    Wie auch immer, Um das Nachladen in die RAM Queue und das Abgreifen von der Queue für den Upload zu realisieren, habe die TPL-Datenflussbibliothek von Microsoft benutzt, das ist ein bißchen mit Kanonen auf Spatzen geschossen und seitdem schwankt der RAM Bedarf von VidUp auch zwischen 200MB und 1GB, ich hab auch keinen Einfluss darauf, wie lange diese Bibliothek was im RAM hält und wann sie was freigibt, deswegen hatte ich diese gerade im Verdacht, ich wollte die eh mal durch was einfacheres ersetzen, evtl. mach ich das die Tage mal. Aber dann ist es ja nicht mehr ganz so eilig, wenn Du den Übeltäter gefunden hast. Dann schmeiß ich die 512KB Version auch erstmal wieder weg.


    Btw ich benutze seit langem kein Antivirus mehr, nur noch Microsoft Defender, die kommerziellen Lösungen sind eh größtenteils Schlangenöl, die sich wichtig machen, indem sie bei jedem Tracking Cookie Alarm schlagen z.B. Etwas übertrieben gesagt. Und dann machen sie auch noch solchen Stress. Wahrscheinlich hat das Antivirus das Lesen der Datei vollständig im RAM gehalten um sie irgendwann scannen zu können, wenn sie fertig ist. xD Wobei ich mich frage, warum das nicht im RAM Usage des Antivirus angezeigt wird. Du hast recht, es gibt so gesharte Memory Pages, die nicht direkt einem Programm zugeordnet werden, in der Regel sind die aber eigentlich zu vernachlässigen...

    So GameParadise hab Dir im Download Ordner noch einen Ordner Test angelegt, da liegt eine VidUp.Setup.1.12.1.Release.x64-512KBytePackage.exe drin, die sendet 512 KByte Pakete. Schau mal ob es damit besser ist. Es mach keinen Sinn, die Drossel niedriger als die halbe Paketgröße zu setzen, da mind. alle 2 Sek ein Paket gesendet wird, das müsste ich dann mal anpassen, sollte ich die Paketgröße mal variabel machen über die Settings.


    Die Version hat sogar noch einen Bug in den Upload Statistiken gefixt, den die aktuelle Version noch hat. :)

    Train92-YT erzählte mir die Tage auch schon sowas, dass Videos als Spam privat gestellt werden und er die dann nicht mehr veröffentlichen kann. Mich wundert das etwas, weil VidUp ja auch bis Dezmeber 21 nicht verifiziert war. Der einzige Unterschied war, dass VidUp publishing status öffentlich war, statt der eingeladene User Kreis, evtl könnt ihr das ja nochmal probieren:



    Aber im Moment ist es ja eh egal, wo VidUp wieder genug Quota hat.


    Edit: Hab auch mal die Anleitung angepasst.

    Ne, Du benötigst keine weitere Software außer Net5, aber ohne könntest Du es ja gar nicht starten. Über den Browser laden die sehr großen Dateien ohne Probleme hoch? Ich hatte mal ne Netzwerkkarte, die je nach Auslastungssituation auch gerne mal abgekackt ist...


    Meine Dateien haben immer so 20GB und davon auch gerne mehrere hintereinander...


    Im Prinzip schickt VidUp 32KByte Pakete über die Leitung, ich überlege ob das evtl. zu wenig sein könnte für so eine Uploadgeschwindigkeit und das irgendwann Stress macht. Kann Dir mal ein Version bauen die größere Pakete schickt, 512 KByte oder so, mal sehen ob das besser läuft. Aber je größer die Pakete, desto bescheidener für die Limitierung des Upload Speeds...

    Was ich in dem Log sehe:


    Um 15:10 Uhr ersten Upload gestartet, der war um 15:27 fertig, dann wird noch Thumb und Playlist geaddet:


    01.01.22 15:27:00.410: YoutubeVideoUploadService.Upload: Uploading finished.

    01.01.22 15:27:00.410: YoutubeVideoUploadService.Upload: Reading answer.

    01.01.22 15:27:00.410: YoutubeVideoUploadService.Upload: Reading answer finished.

    01.01.22 15:27:00.412: YoutubeVideoUploadService.Upload: Upload finished with resume position 0, video id LzbAJYA01LI.

    01.01.22 15:27:00.412: YoutubeVideoUploadService.Upload: End.

    01.01.22 15:27:00.413: YoutubeThumbnailService.AddThumbnail: Start.

    01.01.22 15:27:00.413: YoutubeThumbnailService.AddThumbnail: Video with thumbnail to add available.

    01.01.22 15:27:00.622: HttpHelper.GetStreamContentUpload: Start.

    01.01.22 15:27:00.622: HttpHelper.GetStreamContentUpload: End.

    01.01.22 15:27:00.622: HttpHelper.GetAuthenticatedRequestMessageAsync: Start with uri.

    01.01.22 15:27:00.622: HttpHelper.ensureAccessTokenAsync: Start, checking for access token.

    01.01.22 15:27:00.622: HttpHelper.ensureAccessTokenAsync: End.

    01.01.22 15:27:00.622: HttpHelper.GetAuthenticatedRequestMessageAsync: End with uri.

    01.01.22 15:27:00.622: YoutubeThumbnailService.AddThumbnail: Add thumbnail.

    01.01.22 15:27:04.143: YoutubeThumbnailService.AddThumbnail: End.

    01.01.22 15:27:04.144: YoutubePlaylistItemService.AddToPlaylist: Start.

    01.01.22 15:27:04.144: YoutubePlaylistItemService.AddToPlaylist: Videos to add available.

    01.01.22 15:27:04.146: HttpHelper.GetStreamContent: Start.

    01.01.22 15:27:04.146: HttpHelper.GetStreamContent: End.

    01.01.22 15:27:04.146: HttpHelper.GetAuthenticatedRequestMessageAsync: Start with uri.

    01.01.22 15:27:04.146: HttpHelper.ensureAccessTokenAsync: Start, checking for access token.

    01.01.22 15:27:04.146: HttpHelper.ensureAccessTokenAsync: End.

    01.01.22 15:27:04.146: HttpHelper.GetAuthenticatedRequestMessageAsync: End with uri.

    01.01.22 15:27:04.146: YoutubePlaylistItemService.AddToPlaylist: Add to Playlist.

    01.01.22 15:27:04.292: YoutubePlaylistItemService.AddToPlaylist: End.



    Direkt danach um 15:27 wurde angefangen, die Datei #90# #Schatzsuche im Umland von Meglidunum 2#.mkv hochzuladen. Während des Uploads um 15:54 geht auf einmal was mit der Verschlüsselung des HTTP Transfers schief, was schon sehr seltsam ist (Das war auf dem Screenshot nicht zu erkennen, da stand ja nur An error occurred, liegt aber vermutlich auch nur daran, dass die Leitung weg ist...):


    01.01.22 15:27:05.686: YoutubeVideoUploadService.Upload: Start uploading.

    01.01.22 15:54:14.913: YoutubeVideoUploadService.Upload: HttpClient.SendAsync Exception resume position 0 try 1: System.Net.Http.HttpRequestException: An error occurred while sending the request.

    ---> System.IO.IOException: The decryption operation failed, see inner exception.

    ---> System.ComponentModel.Win32Exception (0x8009030F): Die zu überprüfende Nachricht bzw. Signatur wurde geändert.


    Dann versucht er wie erwartet noch 3 Mal den Upload fortzusetzen, schlägt aber fehl, weil er gar keine Verbindung mehr bekommt, die Leitung scheint tot zu sein:


    01.01.22 15:54:19.924: YoutubeVideoUploadService.Upload: Getting range due to upload retry.

    01.01.22 15:54:19.931: YoutubeVideoUploadService.getResumePositionAsync: Start

    01.01.22 15:54:19.931: YoutubeVideoUploadService.getResumePositionAsync: Requesting resume position, try 1.

    01.01.22 15:54:19.931: HttpHelper.GetStreamContentContentRangeOnly: Start.

    01.01.22 15:54:19.932: HttpHelper.GetStreamContentContentRangeOnly: End.

    01.01.22 15:54:19.932: HttpHelper.GetAuthenticatedRequestMessageAsync: Start with uri.

    01.01.22 15:54:19.932: HttpHelper.ensureAccessTokenAsync: Start, checking for access token.

    01.01.22 15:54:19.932: HttpHelper.ensureAccessTokenAsync: End.

    01.01.22 15:54:19.932: HttpHelper.GetAuthenticatedRequestMessageAsync: End with uri.

    01.01.22 15:54:31.000: YoutubeVideoUploadService.getResumePositionAsync: Exception: System.Net.Http.HttpRequestException: Der angegebene Host ist unbekannt. (http://www.googleapis.com:443)


    Also irgendwie scheint einfach die Internetverbindung weg zu sein.


    Seh jetzt aber nicht, dass das an VidUp liegt, vor allem wenn Du es schon länger nutzt und es erst jetzt auffällt. Evtl stimmt auch gerade mit Deiner Internet Verbindung was nicht?