pexels-photo.jpg

如何乾淨地在 Youtube 影片中截圖

有時候要做影片縮圖的時候想截圖 Youtube 影片,但又不想複製到他的播放按鈕跟進度條。透過 yt-dlp 或其他工具先將影片完整下載,好像又有點大砲打小鳥,大才小用的感覺。之前都是螢幕截一個比較小的圖,直接避開播放進度條擋路的問題。

當時覺得好像沒有簡單的方法。直到我測試出這篇。直接用 JavaScript 抓取 video object 進行截圖。

程式碼片段是東拼西湊起來的。

靈感來源

測試過後目前是可用的。開啟 Youtube 影片頁面,先暫停到想要複製的影片時間點,打開 devtools console ,複製以下的片段貼上並按下 Enter ,就可以截圖並下載了。如果有什麼問題歡迎留言問我。

var canvas = document.createElement('canvas');
var video = $$('video')[0];

canvas.width = 1920;
canvas.height = 1080;

var ctx = canvas.getContext('2d');
ctx.drawImage(video, 0, 0, canvas.width, canvas.height );

var image = canvas.toDataURL('image/jpeg');

function downloadURI(uri, name) {
  var link = document.createElement("a");
  link.download = name;
  link.href = uri;
  document.body.appendChild(link);
  link.click();
  document.body.removeChild(link);
  delete link;
}

downloadURI(image, 'thumbnail')

下載實測

一般的網頁截圖

此外,如果要在一般的網頁截圖,也可以使用 Chrome devtools 。你可以在 elements panel 直接對 DOM 按右鍵選擇截圖。


Posted

in

by

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *