Greasy Fork is available in English.
Simpler to find songs and singing videos in the vtuber streaming channel.
// ==UserScript== // @name youtube channel video fliter/search demo // @description Simpler to find songs and singing videos in the vtuber streaming channel. // @namespace ytb_channel_video_fliter // @author Covenant // @version 1.0.5 // @license MIT // @homepage // @match https://www.youtube.com/channel/*/videos* // @match https://www.youtube.com/channel/*/streams* // @match https://www.youtube.com/c/*/videos* // @match https://www.youtube.com/c/*/streams* // @match https://www.youtube.com/@*/videos* // @match https://www.youtube.com/@*/streams* // @match https://www.youtube.com/user/*/videos* // @match https://www.youtube.com/user/*/streams* // @match https://www.youtube.com/feed/subscriptions* // @icon data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAD///8AEiP//xIj//8SI///EyP//xIj//8SI///EiP//xIj//8SI///EyP//xIj//8SI///EiP//xIj//////8AEiP//wAc7v8AHO7/AB3v/wAc7v8AHO7/ABzu/wAc7v8AHO7/ABzu/wAd7/8AHe//ABzu/wAc7/8AHe//EiP//xIj//8SI////////09V//+6uv////////////9PVf//z87///////+ysv//EiP//5ub////////0tH//xIj//8SI///EiP///////9PVf///////xIj////////T1X///////8SI////////5qZ////////EiP//xIj//8TI///EiP//xIj////////T1X///////8TI////////09V////////EiP///////+amf/////////////S0f//EiP//xIj//8SI////////09V////////EiL///////9PVf////////////+6uv//EiP//7q6///v8P//0tH//xIj//8SI///EyP///////8SI///EiP//xIj//8SI///EiP///////8SI///EiP//xIj//8SI///EiP//xIj//8SI///EiP//////////////////xIj//8SI///EiP//xMj////////EiP//xIj//8SI///EiP//xIj//8SI///EiP//9nZ//8SI///EiP//xMj//8SI///EiP//xIj//8SI///EiP//xIj//8SI///EiP//xIj//8SI///EiL//9na//////////////////////////////////////////////////////////////////////////////////////////////////+r5/b/AAAA//372P//////R5K5/wAAAP/IiWb//////26v1f8AAAD/rGZE////////////////////////////qub1/wAAAP/+/Nj/qub2/wAAAP//////AAAA//782P8TcJ3//vzY/wAAAP///////////////////////////6rm9f8AAAD//vzY/6rm9v8AAAD//////wAAAP/+/Nj/AAAA//////8AAAD///////////////////////////9ur9b/AAAA/+PFov//////R5K6/wAAAP/JiWb//////wAAAP//////AAAA////////////////////////////AAAA//+p7/8AAAD/////////////////////////////////////////////////////////////////bq7V/wxKf///////rGZE/+PFov//////////////////////////////////////////////////////gAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== // @grant GM_setValue // @grant GM_getValue // @grant GM_registerMenuCommand // @connect // @run-at document-end // @noframes // ==/UserScript== var div_fixed; var btn_print; var input_sec; var input_word; var p_console_log; var panel_ytb=GM_getValue('panel_ytb',true); var is_enable=GM_getValue('is_enable',true); function create_style(textContent,id,class_name){ let style=create_node("style",class_name,true,document.body); style.type='text/css'; style.id=id; style.textContent=textContent; return style; } const font_family_panel_important="font-family: 'Noto Sans Mono','Noto Mono','Cascadia Mono','Consolas','DroidSans_Mono','Courier New','symbol_emoji','color_emoji','Noto Sans CJK JP','Meiryo','Yu Gothic','Microsoft JhengHei','old_emoji',sans-serif !important;"; const font_family_default="font-family: 'Noto Sans','Segoe UI','Roboto_2','color_emoji','Noto Sans CJK JP','Meiryo','Yu Gothic','Microsoft JhengHei','old_emoji',sans-serif;"; const font_face_default=` @font-face{font-family: 'color_emoji';src: local('Twemoji Mozilla'),/*url('file:///C:/Program Files/Mozilla Firefox/fonts/TwemojiMozilla.ttf'),*/local('Noto Color Emoji'),local('Segoe UI Emoji'),local('Apple Color Emoji'); @font-face{font-family: 'symbol_emoji';src: local('Segoe UI Symbol');}\n@font-face{font-family: 'old_emoji';src: local('Noto Color Emoji');} @font-face{font-family: 'DroidSans_Mono';src: local('DroidSansMono');}\n@font-face{font-family: 'Cutive_Mono';src: local('Cutive Mono');} @font-face{font-family: 'Roboto_2';src: local('Roboto');}\n@font-face{font-family: 'Noto_Serif';src: local('NotoSerif');}\n@font-face{font-family: 'Dancing_Script';src: local('DancingScript');}\n`; var style_font_face=create_style(font_face_default,"gm_font_face_ytb_channel_video_fliter_demo",["user_gm_font_face","css_ytb_channel_video_fliter_demo"]); var style_user_css=create_style(".user_input_fixed,.user_btn_panel_fixed,.p_console_log{"+font_family_panel_important+"font-weight: 300;}\n","gm_user_css_ytb_channel_video_fliter_demo",["user_gm_css","css_ytb_channel_video_fliter_demo"]); style_user_css.textContent+=`input.user_input_fixed{width: auto;max-width: 95%;border-radius: 0.5rem;padding: 0.25em;} .user_input_fixed,.user_btn_panel_fixed{font-size: 120%;} .input_font_family{min-width: 90%;}\ndiv.div_br{width: 100%;} .user_div_fixed_ytb{position:fixed !important;z-index: 65535;top: 30%;right: 0px;font-size: 1.5rem;} .user_div_fixed_ytb{background: #00000033;display: flex;justify-content: flex-end;flex-wrap: wrap;min-width: 32rem;}\ndiv.div_br{width: 100%;} .user_btn_margin{margin-right: 2px;margin-left: 3px;margin-top: 1px;margin-bottom: 1px;padding-left: 5px;padding-right: 5px;} .user_btn_panel_fixed{min-width: 5em;min-height: 1em;max-height: 2em;} .display_none,#gm_css.display_none{display: none !important;}\n.display_none_fixed_ytb{display: none;}\n`; function create_div(class_name,is_appendChild,node,refNode){ let div=create_node("div",class_name,is_appendChild,node,refNode); div.style.backgroundSize='contain'; div.style.backgroundRepeat='no-repeat'; div.lang='ja'; return div; } function create_btn(innerText,class_name,is_appendChild,node,refNode){ let btn=create_node_text("button",innerText,class_name,is_appendChild,node,refNode); return btn; } function create_input(placeholder,class_name,is_num,is_appendChild,node,refNode){ let input=create_node("Input",class_name,is_appendChild,node,refNode); input.placeholder=placeholder; input.type="text"; input.title=placeholder; if(is_num)input.size="15"; if(is_num)input.setAttribute("maxlength", "10"); if(is_num)input.setAttribute("oninput","this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\\..*?)\\..*/g, '$1');"); return input; } function create_node(tagname,class_name,is_appendChild,node,refNode){ let element=document.createElement(tagname); if(Array.isArray(class_name)){ for(let i=0; i<class_name.length; i++){element.classList.add(class_name[i]);} }else if(typeof class_name==='string'){element.classList.add(class_name);} if(is_appendChild){node.appendChild(element);}else{node.insertBefore(element, refNode);} return element; } function create_node_text(tagname,innerText,class_name,is_appendChild,node,refNode){ let element = create_node(tagname,class_name,is_appendChild,node,refNode); element.innerText=innerText; element.lang='ja'; return element; } function fn_url(url){ let obj_url=new URL(url); let params=obj_url.searchParams; //let params=new URLSearchParams(obj_url.search); return [obj_url,params]; } function console_log_tmp(text,bool){ let div_log=p_console_log; div_log.innerHTML+=text+" "; if(bool){div_log.innerHTML=text;} } //console.log("break"); function fn_btn_print(){//press button try{ var video=document.querySelectorAll('ytd-rich-item-renderer'); var r###lts=0; for(let i = 0; i < video.length; i++){ let is_overlay_exist=true; let ytd_overlay_time=video[i].querySelectorAll('ytd-thumbnail-overlay-time-status-renderer'); if(ytd_overlay_time.length>0){ if(ytd_overlay_time[0].getAttribute("overlay-style").search(new RegExp("LIVE", "i"))!=-1){ continue;//配信中(feed/subscriptions) } }else{/**/ is_overlay_exist=false; } var ary_time=is_overlay_exist?video[i].querySelectorAll('span#text')[0].innerText.split(':'):["NaN"]; var video_name=video[i].querySelectorAll('a>#video-title')[0].innerText; var time=0; var max_len; if(ary_time.length==1){//NaN //console_log_tmp("NaN",false); video[i].classList.remove("display_none");//配信予定, ytb_shorts }else if(ary_time.length==3){//hour time=time+parseInt(ary_time[0])*3600+parseInt(ary_time[1])*60+parseInt(ary_time[2]); }else{ time=time+parseInt(ary_time[0])*60+parseInt(ary_time[1]); } //btn_print.innerHTML=btn_print.innerHTML+time+" "; if(input_sec.value==''){max_len=86400;}else{max_len=parseInt(input_sec.value)*60;} // if(is_enable)video[i].id="gm_css";//dev if(time<max_len&&video_name.search(new RegExp(input_word.value, "i"))!=-1){ video[i].classList.remove("display_none"); r###lts++; }else{ video[i].classList.add("display_none"); } } btn_print.innerText="検索("+r###lts+"本の動画)"; }catch(e){ console_log_tmp(e.message,true); }finally{} } function fn_check_ui(){ if(document.querySelectorAll('ytd-rich-item-renderer').length==0){//UI check btn_print.innerHTML="Exception"; } } (function() { 'use strict'; div_fixed=create_div(["user_div_fixed_ytb"],false,document.body,document.body.firstChild); if(panel_ytb){div_fixed.classList.remove("display_none_fixed_ytb");}else{div_fixed.classList.add("display_none_fixed_ytb");} GM_registerMenuCommand('💬show input;', () => { panel_ytb=!panel_ytb; GM_setValue('panel_ytb', panel_ytb); if(panel_ytb){div_fixed.classList.remove("display_none_fixed_ytb");}else{div_fixed.classList.add("display_none_fixed_ytb");} }); GM_registerMenuCommand("enable #css"+(is_enable?"✔️":"❌"), () => { is_enable=!is_enable; GM_setValue('is_enable', is_enable); }); // input_sec=create_input("最大映像時間(分)/Maximum video time (minutes)",["user_input_fixed",'user_tool'],true,true,div_fixed); btn_print=create_btn("検索",["user_btn_panel_fixed","user_btn_margin",'user_tool'],true,div_fixed); create_div("div_br",true,div_fixed); p_console_log=create_node("p","p_console_log",true,div_fixed); input_word=create_input("抽出条件の指定",["user_input_fixed",'user_tool'],false,true,div_fixed); btn_print.addEventListener('click',() => { fn_btn_print(); }); // window.setTimeout(( () => fn_check_ui() ), 3000);////UI check need delay })(); /*20221031 video=document.querySelectorAll('#items>ytd-grid-video-renderer'); video[i].querySelectorAll('div.badge-style-type-live-now-alternate') video[i].querySelectorAll('span#text') video[i].querySelectorAll('a#video-title') // document.querySelectorAll('#items>ytd-grid-video-renderer') */