Аналог плагина 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 шт):
Расширение Channel groups and rating как раз выполняет эти функции. Создает группы для каналов Youtube и фильтрует в разделе подписок по этим группам.