Youtube 封面

獲取影片封面!

目前為 2021-02-15 提交的版本,檢視 最新版本

// ==UserScript==
// @name               Youtube 封面
// @name:en            Youtube Cover
// @name:zh-CN         youtube 封面
// @namespace          http://tampermonkey.net/
// @version            0.2.1
// @description        獲取影片封面!
// @description:en     Get the cover of youtube video!
// @description:zh-CN  获取视频封面!
// @author             Anong0u0
// @include            *//www.youtube.com/*
// @grant              none
// ==/UserScript==

console.log("youtube Cover is loading");
loadBtn();

async function delay(ms = 0){return new Promise((r)=>{setTimeout(r, ms)})}

function checkImg(imgUrl)
{
  return new Promise(function(resolve, reject)
  {
      var img = new Image();
      img.src = imgUrl;
      img.onload = () => {resolve(img);}
  })
}

function loadBtn()
{
console.log("try load");
if(document.querySelector("#start")!=null) {(function()
{
    var elink = document.createElement("link");
    elink.rel = "stylesheet";
    elink.href = "https://cdn.jsdelivr.net/gh/chiron-fonts/[email protected]/build/webfont/css/Medium.css";
    var ea = document.createElement("a");
    ea.text = document.querySelector("html").lang.indexOf("zh")!=-1?"封面":"Cover";
    ea.id = "ytCover";
    ea.target = "_blank";
    ea.hidden = true;
    ea.style = 'text-decoration:none;font-size: 2em;font-family: "Chiron Sans HK WS";';
    document.querySelector("#start").append(elink);
    document.querySelector("#start").append(ea);
    console.log("done");

    var ytC = document.querySelector("#ytCover");
    var mas = document.querySelector("#masthead");
    var body = document.querySelector("body");
    ytC.style.color = mas.dark? "white":"black";
    var oldHref = null
    var imgTag = ["mqdefault", "hqdefault", "sddefault", "maxresdefault"]

    var urlChange = new MutationObserver(async (mutations) =>
    {
        if (oldHref != document.location.href)
        {
            oldHref = document.location.href

            var video_id = null;
            window.location.search.replace("?","").split('&').forEach((s)=>{if(s.startsWith("v=")){video_id=s.replace("v=","")};});
            ytC.hidden = (video_id == null);
            if (video_id == null) return;

            ytC.href = "https://i.ytimg.com/vi/" + video_id + "/default.jpg";
            for(let i = 0; i < imgTag.length; i++)
            {
                let url = "https://i.ytimg.com/vi/" + video_id + "/" + imgTag[i] + ".jpg";
                checkImg(url).then((img)=>{if(img.width>120 && img.height>90) ytC.href = url;})
                await delay(50);
            }
        }
    });
    var darkMode = new MutationObserver((mutations) => {ytC.style.color = mas.dark? "white":"black"});

    urlChange.observe(body, {childList: true, subtree: true});
    darkMode.observe(mas, {attributes: true});
})();}
else {setTimeout(loadBtn, 300);}
}


QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址