Probleme auf Youtube mit einem Script

  • Firefox-Version
    104.0.2 64bit
    Betriebssystem
    Windwos 10 64bit

    Hi, hoffe das ist das richtige Forum für.

    Ich nutze auf Youtube ein paar Scripte über Tampermonkey z.B

    Youtube mehr Geschwindigkeiten


    diese funktionieren wenn ich nicht bei Youtube angemeldet bin wie sie sollen. Bin ich aber angemeldet tauchen sie unter dem Video nicht mehr auf. Irgendwer ne Idee warum. Muss mich erst bei Google abmelden und die Youtubeseite neu laden, dann gehts wieder. Ist ganz gleich welche Youtubeseite, betriff alle. Seit wann dies so ist weiß ich leider nicht genau.

    Danke schon mal

    Frank

  • Hallo,

    ausgehend vom Code ist das Problem nachvollziehbar. Das Script sucht sich ein bestimmtes Element mit dem Selektor

    div#info.style-scope.ytd-video-primary-info-renderer. Dieses Element ist als Gast sichtbar, als angemeldeter Nutzer ist es nicht sichtbar. Demnach funktioniert das Script technisch betrachtet korrekt und der Ersteller des Scripts muss nachbessern, damit es auch für angemeldete Nutzer funktioniert.

    PS: Bitte aktualisiere auf eine aktuelle Version von Firefox.

  • angemeldet tauchen sie unter dem Video nicht mehr auf.

    Wenn du magst, dann teste bitte:

    Angemeldet:

    Abgemeldet:

    Entweder Zeile 326 austauchen gegen diese:

    const infoElemSelector = 'div#info-contents.style-scope.ytd-watch-flexy';

    Oder das kompl. Script austauschen:

  • Ist das gar kein "normales" JavaScript?

    Muss da erst noch etwas anderes installiert werden?

    Denn als youtube-more-speeds.user.js im Ordner chrome abgespeichert,

    passiert da gar nichts.

    Mit <3lichem Gruß

    Mira

  • 2002Andreas 1. Oktober 2022 um 17:48

    Hat den Titel des Themas von „Probleme auf Youtube mit Tampermonkey“ zu „Probleme auf Youtube mit einem Script“ geändert.
  • Entweder Tampermonkey, oder Violentmonkey brauchst du dazu.

    Das Script setzt mit waitForKeyElements() eine GreaseMonkey-Funktion voraus (die natürlich auch von vergleichbaren Erweiterungen bereitgestellt wird). Wenn du keine solche Erweiterung nutzt, musst du diese Funktion ebenfalls bereitstellen.

    Danke Euch beiden.

    Die Funktion waitForKeyElements() besagt doch in etwa,

    Warte bis die Seite geladen ist,

    oder liege ich da falsch?

    Wenn ich aber richtig liege, müsste es aber doch in dem JavaScript youtube-more-speeds.user.js

    irgendwie anders zu verwirklichen sein.

    Wahrscheinlich bin ich aber naiv.

    Mit <3lichem Gruß

    Mira

  • oder liege ich da falsch?

    Ja.

    Zitat

    https://stackoverflow.com/questions/1923…r-select-images
    waitForKeyElements() operates by looking for elements that match the selector and then feeding those elements, one at a time, to the callback function.

    Externer Inhalt gist.github.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Und wenn der -Monkey sowas nicht bietet, kann man solche Scripte immer noch an jedes Script anhängen, um diese Funktion ausführen zu können. In Violentmonkey funktioniert das Userscript, es wird aber von extern ein weiteres Script nachgeladen (@require):

    https://greasyfork.org/scripts/446257-waitforkeyelements-utility-function/code/waitForKeyElements%20utility%20function.js?version=1059316

    Um Nachladen/externe Quellen zu vermeiden, muss ich also das externe Script unten am eigentlichen Script einfügen, die Zeile mit @require entfernen. Vom eingefügten Script braucht es auch nicht den Kopf innerhalb // ==UserScript== [...] // // ==/UserScript==, Autor, Homepage, Source kann man als Kommentar // stehen lassen, ist hilfreich, wenn es nicht funktioniert und ein Update benötigt.

    Wenn du weinen möchtest, bist du falsch hier. Hier gibt es nur Lösungen!
    Oh Herr, wirf Hirn, oder Steine - Hauptsache, du triffst endlich.
    Zu viele Goofies und Dulleks vom Dienst. Schlabokka!

  • jedoch bin ich einfach zu blond, dies umzusetzen.

    Das wäre eh nicht zielführend. Für Website-Anpassungen sind Erweiterungen wie TamperMonkey gemacht. Es gibt keinen Grund, so etwas über einen nicht offiziell unterstützten Mechanismus umzusetzen, der dazu erfordert, dass man zusätzlich Dinge händisch importieren muss, welche die dafür gemachten Erweiterungen automatisch bereitstellen. chrome-Scripts sollten nur für Dinge genutzt werden, die anders nicht umsetzbar sind, ansonsten tut man sich selbst keinen Gefallen, schon wegen des erhöhten Risikos für Inkompatibilitäten durch Firefox-Updates.

    PS: Ich habe noch nie verstanden, was die Haarfarbe damit zu tun haben soll, was man erreichen kann. ;)

  • jedoch bin ich einfach zu blond, dies umzusetzen.

    Violentmonkey installieren, ist hier bevorzugt, Tampermonkey ist nicht immer kompatibel, wie Andreas selbst feststellen durfte.

    Neues Script, einfügen (siehe Code), speichern.

    [schnipp]Nutzbares Script einen Beitrag weiter unten von mir[schnapp]

    Ich bin/war für den Test nicht bei YT angemeldet.

    Wenn du weinen möchtest, bist du falsch hier. Hier gibt es nur Lösungen!
    Oh Herr, wirf Hirn, oder Steine - Hauptsache, du triffst endlich.
    Zu viele Goofies und Dulleks vom Dienst. Schlabokka!

    Einmal editiert, zuletzt von .DeJaVu (2. Oktober 2022 um 15:13)

  • Ich bin/war für den Test nicht bei YT angemeldet.

    Dann lies doch bitte mal, worum es in diesem Thema geht, inklusive der bereits anderen geschriebenen Beiträge. Denn dann weißt du, dass dein Script überhaupt nicht funktionieren kann, weil es wieder genau den Selektor aus dem Script in Beitrag #1 verwendet, der nicht korrekt ist. Das ist doch genau der Punkt, dass dieser Selektor nur für nicht angemeldete Nutzer funktioniert und der Themenersteller ausdrücklich vorausgesetzt hat, angemeldet zu sein. Für Gäste kannst du auch 1:1 das Script aus Beitrag #1 verwenden, dafür braucht es überhaupt kein neues Script…

  • Ich habe mit Mira_Belle gesprochen.

    Zitat


    Ich bin/war für den Test nicht bei YT angemeldet.

    Alles wurde bereits gesagt, dass zB. der Autor nachbessern muss. Bzw Andreas schon hat, und das funktioniert hier auch, angemeldet.

    Oder man sucht einen Selector, der sowohl als auch vorhanden ist:

    const infoElemSelector = 'div#limited-state.attached-message.style-scope.ytd-watch-flexy';

    Das Script ist etwas gekürzt, die diversen Sprachen sind ausgelassen.

    Wenn du weinen möchtest, bist du falsch hier. Hier gibt es nur Lösungen!
    Oh Herr, wirf Hirn, oder Steine - Hauptsache, du triffst endlich.
    Zu viele Goofies und Dulleks vom Dienst. Schlabokka!

  • 2002Andreas,

    danke dir geht - meist (warum auch immer, iwas stört, mal bei Gelegenheit etwas rum probieren).

    Sören Hentzschel

    Das Script sollte sowohl angemeldet, als auch unangemeldet funktionieren. Sorry, scheinbar kommt das falsch rüber, nur angemeldet meinte ich nicht. Mit der Änderung von 2002Andreas klappt zu 95%, angemeldet oder nicht. Evtl hat Youtube wieder an der Seite rumgebastel. Das ging ewig lange ohne Probleme.

    @.DeJaVu

    Oh, mit deiner Änderung ist die Leiste, wenn man angemeldet ist, wieder unter dem Video, warum auch immer Super, vielen Dank.

    Wie findet man denn so nen Selector? Habs mal mit den Werkzeugen für Webentwickler versucht, aber keine Ahnung ob ich da richtig bin und wo ich schauen müsste.

    4 Mal editiert, zuletzt von scorpie (2. Oktober 2022 um 15:25)

  • Versuch und Fehler. Entweder stand es entweder direkt drunter, oder unter einer Box, die angemeldet angezeigt wird. Einfach mit dem Auswahlzeiger in den Werkzeugen ausprobiert. Hilfreich war, dass ein Firefox angemeldet war, der andere nicht, damit konnte ich direkt testen. Und jetzt ruft das "Brot" im Pay-TV. ;)

    Wenn du weinen möchtest, bist du falsch hier. Hier gibt es nur Lösungen!
    Oh Herr, wirf Hirn, oder Steine - Hauptsache, du triffst endlich.
    Zu viele Goofies und Dulleks vom Dienst. Schlabokka!

  • Ich habe mit Mira_Belle gesprochen.

    Das ist mir persönlich relativ egal, weil's nichts ändert. Ich bin mir sicher, dass auch Mira_Belle gerne ein funktionierendes Script hat. Wir haben in diesem Thread bereits festgestellt, dass der Selektor aus dem originalen Script nicht passend ist. Dass du dann, nachdem wir den Selektor bereits korrigiert haben, wieder ein Script mit dem alten Selektor anbietest, ist ein Schritt zurück und nicht nach vorne.

    Das Script sollte sowohl angemeldet, als auch unangemeldet funktionieren. Sorry, scheinbar kommt das falsch rüber, nur angemeldet meinte ich nicht.

    Ich hatte das durchaus verstanden. ;) Es ging in meinem vorherigen Beitrag darum, dass .DeJaVu diese Anforderung igorniert hatte. Selbstverständlich sollte eine neue Version des Scripts immer funktionieren (insbesonere wenn wir bereits eine Lösung hatten, die immer funktioniert) und nicht das gleiche Problem haben wie bereits das Ausgangs-Script aus Beitrag #1.

    Evtl hat Youtube wieder an der Seite rumgebastel

    Ja, das haben sie. Es gab in den letzten Wochen mehrfach deutlich sichtbare Veränderungen in diesem Bereich auf YouTube.

  • Andreas hat den richtigen Denkanstoss gegeben. Sein Verdienst. Da es eine funktionierende Lösung für jetzt gibt, bin ich vorerst raus. Bei Fehler kann sich scorpie ja nochmal melden.

    Wenn du weinen möchtest, bist du falsch hier. Hier gibt es nur Lösungen!
    Oh Herr, wirf Hirn, oder Steine - Hauptsache, du triffst endlich.
    Zu viele Goofies und Dulleks vom Dienst. Schlabokka!

  • Mit der Änderung von Andreas funktioniert es, aber wie .DejaVu schreibt ist es ohne Anmeldung unter dem Video mit Anmeldung weiter unten, da muss ich immer runterscrollen. Sieht man auch an den Bilder von Andreas. Mit der Änderung von .DejaVu ist es immer unter dem Video, egal ob angemeldet oder nicht.

    Ah und danke fürs Verschieben und Umbenennen

  • Sorry Leute,

    aber irgendwie geht das Thema gerade an mir vorüber!

    Habe das Script von .DeJaVu kopiert und unter chrome als youtube-more-speeds.user.js abgespeichert.

    Funktioniert nicht.

    Habe Zeile 19 const infoElemSelector = 'div#limited-state.attached-message.style-scope.ytd-watch-flexy';

    in const infoElemSelector = 'div#info-contents.style-scope.ytd-watch-flexy'; geändert.

    Funktioniert auch nicht.

    Schade eigentlich.

    Ich möchte kein extra Programm oder extra Erweiterung verwenden.

    Hatte die Funktionen bisher ja auch nicht.

    Mit <3lichem Gruß

    Mira