Аналог плагина PocketTube: Youtube Subscription Manager

Плагин "PocketTube: Youtube Subscription Manager" не работает и ведет не дружественную политику в отношении РФ, поэтому нужен аналог.

Цель банальная - нужно дать возможность создавать группы с каналами по вашим интересам, а также показывать видео только тех каналов которые вы разрешили в группе. Сейчас Youtube это солянка из всех каналов, которые ни как не отсеиваются по интересам.

Для этого за один вечер я набросал Js скрипт, он скрывает видео с других каналов, которые не входят в созданную группу. Но мне не очень хочется писать всю программу аналог PocketTube, может есть аналоги ?

// Плагин для пользовательских скриптов Tampermonkey

// Список групп  ЛюбоеИмя:UrlКанала
group_chanalse=  { 
    "Политика":  { 
        "Юрий Подоляка":"/channel/UCSQSxUJb4zH1SEpzNerSLLg",
        "Другая История":"/c/%D0%94%D1%80%D1%83%D0%B3%D0%B0%D1%8F%D0%98%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F"
     } ,
    "Программирование": { 
        "Egorov Chanal":"/c/egoroffchannel"
     } ,
    "Развлечение": { 
        "Странное местечко":"/c/%D0%A1%D1%82%D1%80%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5%D0%BC%D0%B5%D1%81%D1%82%D0%B5%D1%87%D0%BA%D0%BE",
        "Vatman Corp":"/c/VATMANCorp"
     } 
 } 

// Объеденение нужных  групп
union_group_chanels = Object.assign(group_chanalse["Политика"], group_chanalse["Развлечение"])
console.log(union_group_chanels)


function toSetUrlChanel(_union_group_chanels) { 
    // Вернуть множество url каналов
    res = new Set()
    for(let _v in _union_group_chanels)
     { 
        res.add(_union_group_chanels[_v])
     } 
    return res
 } 
set_union_group_chanels=toSetUrlChanel(union_group_chanels)
console.log(set_union_group_chanels)



function include_chanale(chanals) { 
    // Оставить указанные каналы в списке 
     function cleanChanel(urls_chanel) { 
         for(let el of document.querySelectorAll('.yt-simple-endpoint.style-scope.yt-formatted-string'))
          { 
             if ( urls_chanel.has(el.getAttribute('href')) == false ) { 
                // Удаление отличается от `exclude_chanale` !
                el.parentElement.parentComponent.parentComponent.remove()
              } 
         } 
     } 
    if(typeof timerId == undefined) { 
        let timerId
        let chanals 
     } 
    // повторить с интервалом 2 секунды
    timerId = setInterval(() => cleanChanel(chanals), 2000);
    // остановить вывод через 5 секунд
    setTimeout(() =>  {  clearInterval(timerId); alert('stop');  } , 50000);
 } 
function exclude_chanale(chanals) { 
    // Исключить указанные каналы из списка
    function cleanChanel(urls_chanel) { 
        for(let url of urls_chanel) { 
            for (let el of document.querySelectorAll(`a[href="$ { url } "]`)) { 
                el.parentElement.parentComponent.remove()
             } 
         } 
     } 

    if(typeof timerId == undefined) { 
        let timerId
        let chanals 
     } 

    // повторить с интервалом 2 секунды
    timerId = setInterval(() => cleanChanel(chanals), 2000);
    // остановить вывод через 5 секунд
    setTimeout(() =>  {  clearInterval(timerId); alert('stop');  } , 5000);
 } 
// include_chanale(set_union_group_chanels)
exclude_chanale(set_union_group_chanels)

Ответы (1 шт):

Автор решения: Anton Voronov

Расширение Channel groups and rating как раз выполняет эти функции. Создает группы для каналов Youtube и фильтрует в разделе подписок по этим группам.

→ Ссылка