2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Youtubeのチャンネル別に最新動画を全部見たい

Posted at

動画の自動再生が歯抜け再生されるのがイヤ

最近、といっても1年位前からだがYoutubeを頻繁に見始めた。
気に入ったチャンネルが10個くらいあってそれを巡回しているだけなのだが、少し間が開くとチャンネルに2,3個動画が追加されていたりして。
これだけ連続で見て最新動画に追いつきたい。だけど自動再生は歯抜けで過去の動画に飛ばしたりする動き。プチストレス。
そのプチストレスをgreasemonkyスクリプトで解決してみた。
greasyformに登録なんかもしちゃったりして。
youtube-create-sorted-playlist-related-channnels-when-clicked

スクリプト

code
    // ==UserScript==
    // @name        youtube-create-sorted-playlist-related-channnels-when-clicked
    // @namespace   Violentmonkey Scripts
    // @match       https://www.youtube.com/*
    // @grant       none
    // @version     1.0
    // @author      -
    // @description 2023/9/18 17:09:04
    // @require     https://code.jquery.com/jquery-1.12.4.js
    // @license MIT
    // ==/UserScript==
    var enable_flag = true; // until page reload
    var str_enablebtn_txt = "#auto create channnel's playlist: ";
     
    var func_tmp01 = function(str_link) {
    	str_link += "&list=UL01234567890";
    	document.location = str_link;
    };
    document.addEventListener('yt-navigate-finish', () => {
        // enable / disable btn
        var place = $(document).find("ytd-playlist-panel-renderer > div:nth-child(1), yt-chip-cloud-renderer > div:nth-child(1), body > yt-live-chat-app");
        var enable_btn = $('<span class="ycsprcwc_btn01" style="display: inline-block; padding: .25em .5em; color:#FFF; font-size: 1.5em; background: #333; border: 2px dotted #FFF; border-radius: .35em; text-decoration: underline; cursor: pointer;">'+str_enablebtn_txt+((enable_flag)?"on":"off")+'</span>');
        if ($('body .ycsprcwc_btn01:visible').length < 1) {
            place.prepend(enable_btn);
        }
        // Check URL
        var str_link = String(window.location.href);
        if (/\&list\=/.test(str_link)) { return; }
        if (/watch\?v\=/.test(str_link)) {
            if (enable_flag) {
                func_tmp01(str_link);
            }
        }
    });
    $(document).on("click", ".ycsprcwc_btn01", (e) => {
        if (enable_flag) {
            enable_flag = false;
        } else {
            enable_flag = true;
        }
        $('.ycsprcwc_btn01').text(str_enablebtn_txt+((enable_flag)?"on":"off"));
    });

解説と感想

func_tmp01のとこで謎の文字列をURLに添加してるが、ここを変えれば自分好みの順番に再生リストをソートできるぞ。

基本はリロードが余計に走らないようにURL判定して、有効化フラグを見つつ、URLを書き換えているだけ。
トリガは動画クリックなど、ページ遷移でURLが変化したときに発火されるイベント。
有効化/無効化ボタンはいちいちgreasemonky側で制御させるのが面倒な一時的な利用が多いと思われたため追加した。
フラグはF5など自前でページリロードを行うまでは保持してくれるようだ。(通常のリンククリックページ遷移ではリセットされない)

自分でGreaseMonkeyのスクリプトを作るのは初めてだったが、簡単にできてしまった。
GreaseMonkyとは、要するにブラウザのcss差し替えプラグインのjs版だと捉えていい。
特定のサイトで自分の好きなスクリプトを動かすことができる。
実際、こんなに簡単なコードで1年来の悩みが解決できてしまった。

ほかに、YouTubeで自動翻訳字幕(日本語)を常にオンなんかがよく海外動画を見る人には便利かもしれない。
つかおう、GreaseMonkey!

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?