Greasy Fork is available in English.

Youtube Save to... playlist incremental search

This script injects a search field into the dialog where user can save a video to a playlist. When the user starts to type an incremental search is implemented and the playlists are filtered out

// ==UserScript==
// @name         Youtube Save to... playlist incremental search
// @namespace    http://tampermonkey.net/
// @version      1.2
// @description  This script injects a search field into the dialog where user can save a video to a playlist. When the user starts to type an incremental search is implemented and the playlists are filtered out
// @author       Jaq Drako
// @match        *://www.youtube.com/*
// @grant        none
// @require https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js
// ==/UserScript==

var $ = window.$;
(function() {
    'use strict';

    $(function() {
        var search = function() {

            var wrapperIsVisible = $('tp-yt-paper-dialog:visible');
            var addToPlaylistRenderer = $("ytd-menu-title-renderer");
            if (wrapperIsVisible.length > 0 && addToPlaylistRenderer.length > 0) {
                clearInterval(labelExist);

                $("#close-button").on("click", function() {
                    $("#close-button").off('click')
                    $("input#lookupSearch").val('');
                    $("input#lookupSearch").keyup();
                    $("input#lookupSearch").off('keyup');
                    $("input#lookupSearch").off('search');
                    setTimeout(labelExist = setInterval( search, 100), 500);
                });

                var saveToLabel = $('ytd-menu-title-renderer div span');
                saveToLabel.html("<span>Search:&nbsp;&nbsp;&nbsp;</span><input id='lookupSearch' type='search'/>");

                $("input#lookupSearch").on("search", function() {
                    var labels = $("ytd-add-to-playlist-renderer div#playlists div#checkbox-container yt-formatted-string#label");
                    labels.closest('ytd-playlist-add-to-option-renderer').show();
                });

                $("input#lookupSearch").keyup(function( event ) {
                    var sv = $("input#lookupSearch").val().toLowerCase();
                    var labels = $("ytd-add-to-playlist-renderer div#playlists div#checkbox-container yt-formatted-string#label");
                    labels.each(function(data) {
                        var label = $(this);
                        var title = label.attr("title").toLowerCase();
                        if(title.indexOf(sv) > -1) {
                            label.closest('ytd-playlist-add-to-option-renderer').show();
                        } else {
                            label.closest('ytd-playlist-add-to-option-renderer').hide();
                        }
                    });
                });
            }
        }
        var labelExist = setInterval( search, 100); // check every 100ms
    });
})();