ParticleCore / Iridium

Iridium is an extension built to improve your YouTube experience
Other
1.32k stars 139 forks source link

Autoplay prevention and page loading broken after last youtube update #838

Closed juozaspo closed 4 years ago

juozaspo commented 4 years ago

Youtube updated it's code and autoplay prevention is broken again. Not mentioning pages are not loading properly. Dark theme setting and iridium icon works ok, quick controls not all times (only if video page was loaded directly, e.g. after refresh or visiting a link).

software details:

manifestVersion: 1.2.6
cookieEnabled: true
doNotTrack: unspecified
language: lt
buildID: 20200309095159
name: Firefox
vendor: Mozilla
version: 74.0
arch: x86-64
os: linux

steps to recreate the problem:

additional information that could be helpful: Disabling iridium does not reset everything to default, dark theme is not disabled. Otherwise youtube is fully functional w/o Iridium all pages load fine. Screenshots with Iridium enabled: Screenshot_2020-04-04 YouTube Whole bottom part of page is missing, including quick controls, red loading bar is stuck Screenshot_2020-04-04 YouTube(1) Sidebar is not loaded Screenshot_2020-04-04 BRAWLSTARS ANIMATION DUO SHOWDOWN OF CHAOS If youtube loaded on video page, visiting home page then any other video youtube does not load player at all Screenshot_2020-04-04 BRAWL STARS ANIMATION - SPIKE AND SPROUT ARE BROTHERS Same after visiting any related video (skipping a visit of the home page), red loading bar is stuck, video, etc doesn't change. Screenshot_2020-04-04 YouTube(2) New firefox profile, dark theme broken on initial Youtube load. Screenshot_2020-04-04 YouTube(3) Same results w/o dark theme working on fresh profile.

ParticleCore commented 4 years ago

Thanks for the detailed report, but I haven't had the issue yet, might be a matter of time until the YouTube changes you have reach me.

When the issue happens can you open the console and screenshot what it shows? Press F12 and select the "Console" tab.

Please be careful to not show any private information. It might not show any, but might as well be cautious before taking the screenshot.

juozaspo commented 4 years ago

The console shows no error (when requests and xhr all disabled, otherwise it shows bunch of requests, including xhr post of TypeError args.fflags is undefined) Screenshot: Saityno kūrėjų priemonės – YouTube – https:--www youtube com- 2020-04-04 12:10:05

ParticleCore commented 4 years ago

xhr post of TypeError args.fflags is undefined

That's a good clue actually, that is the internal YouTube error reporting logging an internal error in their code, which Iridium modifies. Thanks for the info, this should be enough for me to work some sort of a workaround.

juozaspo commented 4 years ago
Full contents of recent yt error log request, copied from console window on fresh profile, not logged in yet Url parameters: ``` a "logerror" t "jserror" type "TypeError" msg "args.fflags is undefined" line "17:13" level "WARNING" client.name "1" ``` Form contents: ``` url "https://www.youtube.com/watch?v=kQFbt5UZdz8" file "https://www.youtube.com/" stack "window.modArgs@https://www.youtube.com/:17:13\nwindow.modifier@https://www.youtube.com/:136:16\nKB/a.w[b]@https://www.youtube.com/yts/jsbin/player_ias-vfl6MUxK7/lt_LT/base.js:1964:108\nuR/<@https://www.youtube.com/yts/jsbin/desktop_polymer_inlined_html_polymer_flags_v2-vfllLISrH/desktop_polymer_inlined_html_polymer_flags_v2.js:9777:50\ncAa@https://www.youtube.com/yts/jsbin/desktop_polymer_inlined_html_polymer_flags_v2-vfllLISrH/desktop_polymer_inlined_html_polymer_flags_v2.js:9768:215\ngAa@https://www.youtube.com/yts/jsbin/desktop_polymer_inlined_html_polymer_flags_v2-vfllLISrH/desktop_polymer_inlined_html_polymer_flags_v2.js:9775:424\ntR@https://www.youtube.com/yts/jsbin/desktop_polymer_inlined_html_polymer_flags_v2-vfllLISrH/desktop_polymer_inlined_html_polymer_flags_v2.js:9774:145\nbAa/a.createPlayerCallback_@https://www.youtube.com/yts/jsbin/desktop_polymer_inlined_html_polymer_flags_v2-vfllLISrH/desktop_polymer_inlined_html_polymer_flags_v2.js:9771:162\nbAa@https://www.youtube.com/yts/jsbin/desktop_polymer_inlined_html_polymer_flags_v2-vfllLISrH/desktop_polymer_inlined_html_polymer_flags_v2.js:9772:26\npR.prototype.loadNewVideoConfig@https://www.youtube.com/yts/jsbin/desktop_polymer_inlined_html_polymer_flags_v2-vfllLISrH/desktop_polymer_inlined_html_polymer_flags_v2.js:9765:24\npR/this.initialLoadConfigTimerId_<@https://www.youtube.com/yts/jsbin/desktop_polymer_inlined_html_polymer_flags_v2-vfllLISrH/desktop_polymer_inlined_html_polymer_flags_v2.js:9762:50\nxe/<@https://www.youtube.com/yts/jsbin/desktop_polymer_inlined_html_polymer_flags_v2-vfllLISrH/desktop_polymer_inlined_html_polymer_flags_v2.js:447:63\n" client.name "WEB" client.version "2.20200402" client.params "\"cueVideoByPlayerVars\"" session_token "[censored]" ```
ParticleCore commented 4 years ago
window.modArgs
 @https://www.youtube.com/:17:13
    window.modifier
 @https://www.youtube.com/:136:16
    KB/a.w[b]
 @https://www.youtube.com/yts/jsbin/player_ias-vfl6MUxK7/lt_LT/base.js:1964:108
    uR/<
 @https://www.youtube.com/yts/jsbin/desktop_polymer_inlined_html_polymer_flags_v2-vfllLISrH/desktop_polymer_inlined_html_polymer_flags_v2.js:9777:50
    cAa
 @https://www.youtube.com/yts/jsbin/desktop_polymer_inlined_html_polymer_flags_v2-vfllLISrH/desktop_polymer_inlined_html_polymer_flags_v2.js:9768:215
    gAa
 @https://www.youtube.com/yts/jsbin/desktop_polymer_inlined_html_polymer_flags_v2-vfllLISrH/desktop_polymer_inlined_html_polymer_flags_v2.js:9775:424
    tR
 @https://www.youtube.com/yts/jsbin/desktop_polymer_inlined_html_polymer_flags_v2-vfllLISrH/desktop_polymer_inlined_html_polymer_flags_v2.js:9774:145
    bAa/a.createPlayerCallback_
 @https://www.youtube.com/yts/jsbin/desktop_polymer_inlined_html_polymer_flags_v2-vfllLISrH/desktop_polymer_inlined_html_polymer_flags_v2.js:9771:162
    bAa
 @https://www.youtube.com/yts/jsbin/desktop_polymer_inlined_html_polymer_flags_v2-vfllLISrH/desktop_polymer_inlined_html_polymer_flags_v2.js:9772:26
    pR.prototype.loadNewVideoConfig
 @https://www.youtube.com/yts/jsbin/desktop_polymer_inlined_html_polymer_flags_v2-vfllLISrH/desktop_polymer_inlined_html_polymer_flags_v2.js:9765:24
    pR/this.initialLoadConfigTimerId_<
 @https://www.youtube.com/yts/jsbin/desktop_polymer_inlined_html_polymer_flags_v2-vfllLISrH/desktop_polymer_inlined_html_polymer_flags_v2.js:9762:50
    xe/<
 @https://www.youtube.com/yts/jsbin/desktop_polymer_inlined_html_polymer_flags_v2-vfllLISrH/desktop_polymer_inlined_html_polymer_flags_v2.js:447:63

window.modArgs and window.modifier belong to Iridium, which means the assumption was right.

Thanks for that extra info, that was extremely helpful. Unfortunately that means the video attributes have changed and it is no longer finding them, I have to wait for the new changes to see if they changed location, changed name or both.

In the meantime I will be pushing a safe check (temporary fix) to prevent the rest of the script from stopping if the attributes are not located.

ParticleCore commented 4 years ago

Version 1.2.7 should mitigate this issue, but the autoplay feature might not work on first load, this means when the video is first opened, but should work on videos that are subsequently opened in the same page after that one. Will have to see how to fix that one.

jonutella commented 3 years ago

Any update on this issue yet?