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

[Feature Request]: 'Skip liked songs' AKA 'Discover new songs' in radio mode #2133

Open
2 tasks done
jorbig opened this issue Jun 8, 2024 · 3 comments
Open
2 tasks done
Labels
enhancement New feature or request

Comments

@jorbig
Copy link

jorbig commented Jun 8, 2024

Preflight Checklist

  • I use the latest version of YouTube Music (Application).
  • I have searched the issue tracker for a feature request that matches the one I want to file, without success.

Problem Description

Using 'Start radio', we can discover new music that fits the current song, but often songs are played that I've already listened to before.

Proposed Solution

Much alike the already present 'Skip disliked songs' feature, we'd need a 'Skip liked songs' feature, that makes it possible to discover new music in radio mode without hearing many of the same old songs over and over again.

Alternatives Considered

I couldn't find or think of any alternative solution.

Additional Information

No response

@JellyBrick JellyBrick added the enhancement New feature or request label Jun 9, 2024
@SnowboundCabin
Copy link

This could probably be expanded to "Skip songs in library," since liking a song automatically puts it in your library, and anything in your library isn't new.

@jorbig
Copy link
Author

jorbig commented Jun 29, 2024

Until this feature is added, I'm using music.youtube.com with this userscript ChatGPT 4(o)helped me create:

// ==UserScript==
// @name        YouTube Music - Auto-skip liked/disliked songs within 3 seconds
// @namespace   Violentmonkey Scripts
// @match       https://music.youtube.com/*
// @grant       none
// @version     1.0
// @author      jorbig
// @description 6/29/2024, 8:48:57 PM
// ==/UserScript==

const likeButtonContainer = document.getElementById('like-button-renderer');
const skipButton = document.getElementsByClassName('next-button')[0];
const timeInfoSpan = document.querySelector('.time-info.style-scope.ytmusic-player-bar'); // Target the time span

// Function to check like-status and song time
const checkSongStatus = () => {
    const likeStatus = likeButtonContainer.getAttribute('like-status');

    // Extract current time from the time info span
    const currentTimeMatch = timeInfoSpan.textContent.match(/(\d+):(\d+)/); // Match minutes and seconds
    if (currentTimeMatch) {
        const seconds = parseInt(currentTimeMatch[1], 10) * 60 + parseInt(currentTimeMatch[2], 10);
        if (seconds <= 2 && (likeStatus === 'DISLIKE' || likeStatus === 'LIKE')) {
            skipButton.click();
        }
    }
}

setInterval(checkSongStatus, 2000);

@Koaxz
Copy link

Koaxz commented Jul 1, 2024

+1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants