Примерным плейлистом сообщества может быть JROCK. В него входят 4 песни: -CHAIN-, проклятие CRIMSON, 偽りのディストピア и 無限廻廊 - mugenkairou. Остальное видео. Я хочу воспроизвести только 4 песни и пропустить 11 видео.
Я попробовал использовать следующий букмарклет в Firefox. Никакого эффекта.
Код: Выделить всё
javascript: (function () {
{
if (window.skipVideos == "TRUE") {
return;
}
}
window.skipVideos = "TRUE";
const likeContainer = document.getElementById(
"ytmusic-responsive-list-item-renderer"
);
const nextButton = document.getElementsByClassName("next-button")[0];
if (!ytmusic-responsive-list-item-renderer || !nextButton) {
throw new Error("Failed to find list item renderer and next buttons");
}
setInterval(() => {
if (!ytmusic-responsive-list-item-renderer
.getAttribute("should-render-subtitle-separators") === ""
) {
nextButton.click();
}
}, 2000);
})();
(начните редактирование, чтобы ответить на комментарий @yogi)
В приведенном выше коде я использую «ytmusic-Response-list-item-renderer» для ссылки на собственный тег YouTube Music, который является контейнером для одной песни или видео. Если такой тег не содержит в этом же теге атрибута must-render-subtitle-separators, то я хочу нажать кнопку «Далее». (Технически мой код проверяет нулевое значение в этом атрибуте, но именно это и содержит код.) Вот пример тега для песни:
Код: Выделить всё
Код: Выделить всё
Я сравниваю этот букмарклет с букмарклетом, который я изменил из «Автомагический пропуск нелюбимых песен на YouTube Music», и который работает по назначению: для пропуска нелюбимых песен:
Код: Выделить всё
javascript: (function () {
{
if (window.skipDisliked == "TRUE") {
return;
}
}
window.skipDisliked = "TRUE";
const likeContainer = document.getElementById("like-button-renderer");
const nextButton = document.getElementsByClassName("next-button")[0];
if (!likeContainer || !nextButton) {
throw new Error("Failed to find dislike and next buttons");
}
setInterval(() => {
if (likeContainer.getAttribute("like-status") === "DISLIKE") {
nextButton.click();
}
}, 2000);
})();
В качестве примечания: я могу скрыть видео с помощью следующего CSS, но это не влияет на воспроизведение:
(исправленный код 04.11.25)
Код: Выделить всё
body:has(ytmusic-responsive-list-item-renderer[should-render-subtitle-separators]) ytmusic-responsive-list-item-renderer:not([should-render-subtitle-separators]) {
display: none !important;
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... y-playlist
Мобильная версия