Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reverse playlist button no longer functioning. - Remedy: Add Shortkey (& extra position?) #1544

Closed
somecalvin opened this issue Jan 20, 2023 · 34 comments
Labels
Bounty Will pass on donations (Optional) - (OR: Requester will pay personally. Only if stated!) Bug Bug or required update after YouTube changes CSS Solution can be CSS ( /mostly - if any JS is needed, please specify) help wanted Just an old github standard we add automatically. (The team can remove it when working on it.) Knowledge Base / Documentation for contributors We should repurpose this for future reference / Wiki / Education / Introduction Open! Not to forget. Unfinished (or waiting for a requirement) (unless combined with label: riddle) Riddle up-for-grabs (a github standard for inviting new contributors) - Welcome! ♥ 🥳🤩Yay!👏 legendary

Comments

@somecalvin
Copy link

somecalvin commented Jan 20, 2023

Bug Report:

BUG:
Reverse playlist button no longer functioning
Previously worked about a month ago.
Have tried main extension as well as beta version.

HOW:
Reverse playlist button no longer functioning

EXPECTED (/preferred) behavior:
Dual arrow icon should appear on playlist

Setup:

⚬ ImprovedTube Version: 4.0.17
⚬ Browser: Chrome Version 109.0.5414.75
⚬ Settings: improvedtube.txt
⚬ OS: Windows 11
⚬ Device: PC

@somecalvin somecalvin added Bug Bug or required update after YouTube changes help wanted Just an old github standard we add automatically. (The team can remove it when working on it.) labels Jan 20, 2023
@ImprovedTube
Copy link
Member

ImprovedTube commented Jan 20, 2023

Hi, Thanks! , possibly since our nov16 update? (Beta is currently the same.)

Else by Youtube changes. You/we can try the Firefox or Edge-version to confirm.

@dojoVader
Copy link
Contributor

Confirmed, this is broken for me as well @ImprovedTube , I can take this up.

@ImprovedTube
Copy link
Member

ImprovedTube commented Jan 20, 2023

hi @dojoVader,

awesome!! You guys seem to see a new youtube change(?) that's not rolled out to everyone yet (They arent always 100% final. Still worth to fix immediately. Yet for now we also have older open bugs (#1492 ) that are simple & most relevant)

playlist.js#L20 ( Playlist Repeat Update )

@ImprovedTube
Copy link
Member

ImprovedTube commented Jan 20, 2023

Aand just to be complete about Playlists: #1546

@ImprovedTube ImprovedTube added the CSS Solution can be CSS ( /mostly - if any JS is needed, please specify) label Feb 21, 2023
@ImprovedTube
Copy link
Member

shuffle button also might be missing.

@Bamadeus
Copy link

im still haivng this issue.
for a while it came back but now its been gone again

@ImprovedTube
Copy link
Member

ImprovedTube commented Mar 14, 2023

thanks @Bamadeus
was gone back since when exactly if you remember?
did youtube change back and forth in any other way at the same time?

@TiagoTiago
Copy link

No reverse for me either. I'm on Firefox. Loop and Shuffle buttons do show.

@Bamadeus
Copy link

thanks @Bamadeus was gone back since when exactly if you remember? did youtube change back and forth in any other way at the same time?

It's been happening for 2 weeks now.
I noticed no other issues during this time frame, except for s few days where it was stuck on light modes despite being in dark mode.

@eUnisk
Copy link

eUnisk commented Apr 2, 2023

I can confirm there's no reverse button for me either. Tested on both Chrome and Edge.

ImprovedTube added a commit that referenced this issue Apr 3, 2023
@ImprovedTube
Copy link
Member

ImprovedTube commented Apr 3, 2023

hi guys, please try the latest version, if it is fixed? (hopefully, as this feature is nowhere else / loved)

https://github.com/code-charity/youtube/archive/2428298816daa0170a7a0f4ca3f7b6b7f6023a6e.zip

and test for #1646 too if you can

@somecalvin got the bug consistently ever since?
@eUnisk both logged in with the same youtube account?
@Bamadeus @TiagoTiago it was gone for everybody during our previous version only. What about now?
@dojoVader did you try? 😅

ImprovedTube added a commit that referenced this issue Apr 3, 2023
ImprovedTube added a commit that referenced this issue Apr 4, 2023
@SingularityRS
Copy link

SingularityRS commented Apr 4, 2023

I don't use this feature, but I just tried to enable the Reverse playlist option and it doesn't show any button. I'm logged into YouTube with my account. I signed out and it then shows up+works. I'm using the most updated version.

edit: I have another YouTube account and the button still shows on there on both its own playlists and when viewing other playlists. On my main account (the one with no button), the button doesn't show for my own or other people's playlists.

@ImprovedTube
Copy link
Member

ImprovedTube commented Apr 5, 2023

@SingularityRS great info

  • can you copy paste Youtube's sidebar from the DOM (F12 Browser console) where it doesnt work?
    (+ errors (if any are shown)

  • and/or paste the whole DOM, so that we can also look for more changes.

@suparnaghosh934
Copy link

suparnaghosh934 commented Apr 5, 2023 via email

@SingularityRS
Copy link

Am I just meant to inspect element on the sidebar and then just look on the "Console" tab for any shown errors? I highlighted all the error messages and then saved it to a text document. It looks quite messy though. Not sure if there's an easier way to share the errors. There's a load of "ERR_BLOCKED_BY_CLIENT" errors. I only see a few errors that reference ImprovedTube.

www.youtube.com-1680746694984.log is the text file that was created showing the errors in the "Console" section.

ImprovedTube added a commit that referenced this issue Apr 7, 2023
@ImprovedTube
Copy link
Member

ImprovedTube commented Apr 7, 2023

hi, thanks @SingularityRS!
A lot of of programming work & frontend is simple, just requiring diligence. So i use to wonder 🤔🤔 how to motivate more volunteers. including bug-reporters, translators and especially any user people who is "only enough of a nerd to have several extensions or even users scripts. (Maybe my following answer should appear when reporting bugs & be linked in the extension any many extensions. And/or train an AI)

1. Inspecting: I meant the html from youtube, as shown above console ('Elements' tab) (same as ctrl+U, but after a lot of JS ran, so that can make a big difference)

  • Whenever youtube changes somebody could (should) also just rightclick <html> the root element in the first line & 'copy element'

  • to get only what we need now precisely, you can inspect the element on the loop or shuffle button in a playlist & right-click the element's html tag and 'copy full xpath'
    Now, when it isn't working, there might be a slight change in this path.
    ( when our feature is working, i'm getting:
    /html/body/ytd-app/div[1]/ytd-page-manager/ytd-watch-flexy/div[5]/div[2]/div/ytd-playlist-panel-renderer/div/div[1]/div/div[2]/div[1]/div[1]/ytd-menu-renderer/div[1]/ytd-playlist-loop-button-renderer/div/ytd-button-renderer/yt-button-shape/button/yt-touch-feedback-shape/div/div[2] )

2. Errors:

  • the first ImprovedTube error tells us
    functions.js:62 Uncaught TypeError: Cannot read properties of null (reading 'parentNode')
    at ImprovedTube.ytElementsHandler (functions.js:62:76)
    = line Nr. 62 character number 76
    functions.js#L62

this.elements.playlist.actions = node.parentNode.parentNode.parentNode.parentNode;
this.playlistReverse();

since im active but dont know what exactly changed, if anything, im making the line optional and allow alternatives:

try{this.elements.playlist.actions = node.parentNode.parentNode.parentNode.parentNode;}
catch{ try{this.elements.playlist.actions = node.parentNode.parentNode.parentNode;}
catch{try{this.elements.playlist.actions = node.parentNode.parentNode;}
catch{try{this.elements.playlist.actions = node.parentNode;}
catch{try{this.elements.playlist.actions = node;}}
}
}
}
this.playlistReverse();

( you can test: master.zip
@somecalvin @Bamadeus @eUnisk @suparnaghosh934 @TiagoTiago )

@SingularityRS
Copy link

So I think I did the inspecting right.

I tested the working account first with the reverse button showing and copied the full xpath, I got the same as yours: /html/body/ytd-app/div[1]/ytd-page-manager/ytd-watch-flexy/div[5]/div[1]/div/div[2]/ytd-playlist-panel-renderer/div/div[1]/div/div[2]/div[1]/div[1]/ytd-menu-renderer/div[1]/ytd-playlist-loop-button-renderer/div/ytd-button-renderer/yt-button-shape/button/yt-touch-feedback-shape/div/div[2]

Tried the same on my main account that doesn't get the button and it gives /html/body/ytd-app/div[1]/ytd-page-manager/ytd-watch-flexy/div[5]/div[1]/div/div[2]/ytd-playlist-panel-renderer/div/div[1]/div/div[2]/div[1]/div[1]/ytd-menu-renderer/div[1]/ytd-playlist-loop-button-renderer/div/ytd-button-renderer/yt-button-shape/button/yt-touch-feedback-shape/div/div[2]

They seem to be the same.

ImprovedTube added a commit that referenced this issue Apr 8, 2023
@ImprovedTube
Copy link
Member

then the preceding condition for the code must be running on another
or

} else if (name === 'YTD-TOGGLE-BUTTON-RENDERER' || name === 'YTD-PLAYLIST-LOOP-BUTTON-RENDERER') {
if (
node.parentComponent &&
node.parentComponent.nodeName === 'YTD-MENU-RENDERER' &&
node.parentComponent.parentComponent &&
node.parentComponent.parentComponent.nodeName === 'YTD-PLAYLIST-PANEL-RENDERER'
) {
var index = Array.prototype.indexOf.call(node.parentNode.children, node);
if (index === 0) {
try{this.elements.playlist.actions = node.parentNode.parentNode.parentNode.parentNode;}

@ImprovedTube
Copy link
Member

ImprovedTube commented Apr 8, 2023

  • Where it doesn't work, YouTube must somehow be making one of those refered to buttons exist at least twice and at a shorter path, so that the parentNode.parentNode.parentNode.parentNode fails as we learned from the error.

    • you can confirm that through pressing ctrl+F while having clicked in the elements area (not console) ( to search for the other occurance of YTD-PLAYLIST-LOOP-BUTTON-RENDERER or YTD-TOGGLE-BUTTON-RENDERER )

(also, is the lastest version is a fix? (extracting .zip & loading at chrome://extensions )

@SingularityRS
Copy link

Issue still persists on the latest version. I did the ctrl+F on the Chrome dev console, made sure to click in the area on the "Elements" tab and did the search. There doesn't seem to be any differences. On both accounts, the number of times the loop and toggle button renderer are mentioned is exactly the same.

This seems like some sort of block on YouTube's side since it's only happening when logged in to certain accounts.

@ImprovedTube ImprovedTube changed the title Reverse playlist button no longer functioning Reverse playlist button no longer functioning. - Remedy: Add Shortkey (& extra position?) May 14, 2023
@SingularityRS
Copy link

Seems like it's gone again on my main account. Still shows on the unaffected account as always. Not sure when it went away, but it's not because of anything with the extension because I haven't updated it (still using the version I downloaded a while ago). I guess this feature will just keep going on a cycle of breaking and working on certain accounts.

@duracell
Copy link

I have the same issue, I tested with the current stable and beta version.
Activated the reverse option on both (other version was disabled), but no button visible.
(Browser is current stable version of Chrome [114.0.5735.133] on Windows 10 [22H2].)
Any ideas how to fix/test this case?

@keebster
Copy link

Noticed that this just started for me a few days ago.

{"action":"storage-loaded","storage":{"always_show_progress_bar":true,"below_player_pip":false,"below_player_screenshot":false,"bluelight":30,"dim":0,"forced_theater_mode":true,"hide_gradient_bottom":true,"hide_playlist":false,"player_autofullscreen":false,"player_hd_thumbnail":true,"player_hide_skip_overlay":true,"player_size":"do_not_change","player_transparent_background":true,"playlist_repeat":false,"playlist_reverse":true,"playlist_shuffle":false,"theme":"dark","theme_primary_color":[200,200,200],"theme_text_color":[25,25,25],"thumbnails_quality":"hqdefault"}}

.fk9XWG_reverseBtn{text-align:center;cursor:pointer;width:40px;height:40px;font-size:16px;font-weight:700;line-height:40px;display:inline-block;padding:0!important}.fk9XWG_reverseBtn:hover{background-color:#0000001a;border-radius:50%}.fk9XWG_reverseBtn.fk9XWG_darkThemeBtn{color:#fff}.fk9XWG_reverseBtn.fk9XWG_darkThemeBtn:hover{background-color:#fff3}.fk9XWG_popContent{color:#8bc34a;width:360px;padding:4px;font-size:18px}.fk9XWG_popContentTitle{color:#4caf50}.fk9XWG_popContent div{margin:0 0 8px}

@TooFyrii
Copy link

Not sure when my Reverse Playlist disappeared, maybe a couple of weeks to a month ago. But just up and no longer present. Using the latest version as of today 10/31 (uninstalled and reinstalled several times). I think my chrome browser is up to date. I haz a sad, that is the only thing I use the extension for. Am I missing something? Should I go back and install an older version (which I'm not sure I know how to do).

Thanks! (And thanks for all your hard work, community, I so wish I could help!)

@jesper987654
Copy link

I also have the problem that the reverse function is not showing up.. i need that function to watch the creepypasta playlist.. i really hope this gets fixed soon.. i really like having something playing in the background while playing tedious games... ( i am watching youtube on chrome browser on windows 10)

@ImprovedTube
Copy link
Member

ImprovedTube commented Nov 5, 2023

hi @jesper987654! ( @TooFyrii @keebster @duracell @TiagoTiago @Bamadeus @somecalvin )

  • While this is our most commented bug thread & should long be fixed, i didn't find out why immediately, and this whole sisyphos-project keeps hurting me. (You could hardly make such project flawless alone, because it is a lot of work while YouTube changes quickly..)

    • Yet inspite all this project keeps growing, because it is the only one of a kind.
  • There used to be only one(?) standalone extension for this feature (until 2019?) and that developer stopped. - it had 20000+ users in the end. After years of waiting and many requests, we made a replacements. But I assume with us it has fewer users still, lets say a few % of all of our users. So i shouldn't care anytime soon before other issues. Yet these few % keep being frustrated and they keep writing most of our 1 star reviews (i.e. "why must the only feature I want, be the only one that doesn't work for me?!"). Assumable they are frustrated also by the history of this feature beyond our extension?
    - Yet obviously even for a 1000 users this would be worth some maintenance (not ever year. - or season, just in case this exact feature should stay "unlucky)

Remedies

(Developers):

And you (everyone) can fund a bounty for this issue:

  • chance are a poor freelancer will finish this now for a low amount
  • there are several sites specifically for rewards / bounties for github-issue-solving (with memorable names like issueHunt or gitCoin: List websites I can publish paid tasks on tapaswenipathak/Internship-project-tasks#34
    • most might still have low traffic, so the list should be sorted (by similarweb-ranking, etc.). Opening a repo
  • Alternatively you can just post the issue with a budget on a general freelancer network.
  • Already added a tag here long ago called bounty, so i'm adding it for the first time and will also pass on crypto donations, if we get any.

Thanks!

@ImprovedTube ImprovedTube added the Bounty Will pass on donations (Optional) - (OR: Requester will pay personally. Only if stated!) label Nov 5, 2023
@chasevis
Copy link

chasevis commented Nov 5, 2023

Hi @ImprovedTube ,

i fixed in my local by taking release code and change the code from

                        node.parentComponent &&
			node.parentComponent.nodeName === 'YTD-MENU-RENDERER' &&
			node.parentComponent.parentComponent &&
			node.parentComponent.parentComponent.nodeName === 'YTD-PLAYLIST-PANEL-RENDERER'

to

                        node.closest("YTD-MENU-RENDERER") &&
			node.closest("YTD-PLAYLIST-PANEL-RENDERER")

it is working with above change
Screenshot 2023-11-05 203502

@ImprovedTube
Copy link
Member

ImprovedTube commented Nov 6, 2023

  • TYVM! @chasevis this might not be final / efficient? - considering our mutation observer can run many times. - Yet we can CPUly afford to make code more universal - and failproof predicting some of the ways Youtube might still change.

  • publishing a new version to the stores

  • Wish the many people who votes us down for this would come back and revise their 1 star.

@chasevis
Copy link

chasevis commented Nov 7, 2023

  • TYVM! @chasevis this might not be final / efficient? - considering our mutation observer can run many times. - Yet we can CPUly afford to make code more universal - and failproof predicting some of the ways Youtube might still change.
  • publishing a new version to the stores
  • Wish the many people who votes us down for this would come back and revise their 1 star.

@ImprovedTube
can we make a flag for reverse icon and once the reverse icon is enabled we can stop going into if condition.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bounty Will pass on donations (Optional) - (OR: Requester will pay personally. Only if stated!) Bug Bug or required update after YouTube changes CSS Solution can be CSS ( /mostly - if any JS is needed, please specify) help wanted Just an old github standard we add automatically. (The team can remove it when working on it.) Knowledge Base / Documentation for contributors We should repurpose this for future reference / Wiki / Education / Introduction Open! Not to forget. Unfinished (or waiting for a requirement) (unless combined with label: riddle) Riddle up-for-grabs (a github standard for inviting new contributors) - Welcome! ♥ 🥳🤩Yay!👏 legendary
Projects
Status: Done
Development

No branches or pull requests