Shows a list of the playlist video names in plaintext to be easily copied
当前为
// ==UserScript==
// @name Export Youtube Playlist in plaintext
// @namespace 1N07
// @version 0.2
// @description Shows a list of the playlist video names in plaintext to be easily copied
// @author 1N07
// @require https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
// @match https://www.youtube.com/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
var listCreationAllowed = true;
var urlAtLastCheck = "";
setInterval(function(){
if(urlAtLastCheck != window.location.href)
{
urlAtLastCheck = window.location.href;
if(urlAtLastCheck.includes("/playlist?list="))
InsertButton();
}
}, 100);
function InsertButton()
{
$("ytd-playlist-sidebar-secondary-info-renderer > #owner-container").parent().after("<button id='exportPlainTextList'>Export as Plaintext</button>");
$("#exportPlainTextList").click(ScrollUntillAllVisible);
}
function ScrollUntillAllVisible()
{
if(!listCreationAllowed)
return;
listCreationAllowed = false;
$("#exportPlainTextList").after(`<p id="listBuildMessage" style="color: red; font-size: 1.33em;">Getting list... please wait.</p>`);
let numOfVideosInPlaylist = $("ytd-playlist-sidebar-renderer.ytd-browse > #items #stats > yt-formatted-string.ytd-playlist-sidebar-primary-info-renderer:first").text().replace(/(\D+|\s+)/g, '');
let scrollInterval = setInterval(function(){
if($("yt-formatted-string#index.ytd-playlist-video-renderer").last().text() != numOfVideosInPlaylist)
$(document).scrollTop($(document).height());
else
{
BuildAndDisplayList();
clearInterval(scrollInterval);
}
}, 100);
}
function BuildAndDisplayList()
{
let list = "";
$("ytd-playlist-video-renderer #content #video-title").each(function(){
list += $(this).attr("title") + "\n";
});
$("body").append('<div id="listDisplayContainer" style="position: fixed; z-index: 9999; top: 5%; right: 5%; background-color: gray; padding: 10px; border-radius: 5px;"><button style="float: right;" id="closeTheListThing">Close</button><textarea style="width: 50vw; height: 80vh; max-width: 90vw; max-height: 90vh;">'+list+'</textarea></div>');
$("#listBuildMessage").remove();
$("#closeTheListThing").click(function(){
$("#listDisplayContainer").remove();
listCreationAllowed = true;
});
}
})();