您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Search youtube thumbnail image using yandex
当前为
- // ==UserScript==
- // @name Youtube Thumbnail Search
- // @namespace http://tampermonkey.net/
- // @version 0.6
- // @description Search youtube thumbnail image using yandex
- // @author Tanuki
- // @match *://*.youtube.com/*
- // @icon https://www.google.com/s2/favicons?sz=64&domain=youtube.com
- // @namespace https://greasyfork.org/id/scripts/449233-youtube-thumbnail-search
- // @homepage https://greasyfork.org/id/scripts/449233-youtube-thumbnail-search
- // @grant none
- // @license MIT
- // ==/UserScript==
- (function() {
- 'use strict';
- // Embed Google Fonts stylesheet for Material Icons
- let link = document.createElement('link');
- link.href = 'https://fonts.googleapis.com/css2?family=Material+Icons';
- link.rel = 'stylesheet';
- document.head.appendChild(link);
- window.addEventListener("scroll",function(){
- // Select all ytd-thumbnail elements
- let thumbnails = document.querySelectorAll('ytd-thumbnail');
- // Iterate over each thumbnail element
- thumbnails.forEach(thumbnail => {
- // Find the img element within the thumbnail element
- let imgElement = thumbnail.querySelector('img');
- // Get the src attribute of the img element
- if (imgElement) {
- var imgSrc = imgElement.src;
- let thumbnailImg = imgElement.querySelector('yt-image');
- if (thumbnailImg){
- imgSrc = thumbnailImg.querySelector('img').src;
- }
- if (!imgSrc && thumbnail.nextElementSibling && thumbnail.nextElementSibling.tagName === 'YTD-PLAYLIST-THUMBNAIL') {
- let playlist = thumbnail.nextElementSibling.querySelector('ytd-playlist-video-thumbnail-renderer');
- if (playlist) {
- let thumbnailPlaylist = playlist.querySelector('yt-image');
- if (thumbnailPlaylist){
- imgSrc = thumbnailPlaylist.querySelector('img').src;
- }
- }
- }
- // Remove any parameters from the image source
- //imgSrc = imgSrc.split('?')[0];
- // Check if the URL contains "oar" in the filename
- if (!imgSrc.includes('/oar')) {
- // Replace the filename with "maxresdefault.jpg"
- imgSrc = imgSrc.replace(/\/[^\/]+\.jpg/, '/maxresdefault.jpg');
- }
- // Check if the TanTools div exists
- let tanToolsDiv = thumbnail.parentNode.parentNode.querySelector('.tan-tools');
- // Remove existing tanToolsDiv if it exists
- if (tanToolsDiv) {
- tanToolsDiv.remove();
- }
- // Create a new div element for TanTools with buttons
- tanToolsDiv = document.createElement('div');
- tanToolsDiv.className = 'tan-tools'; // Add a class name to the div
- tanToolsDiv.dataset.layer = '6'; // Add data-layer attribute
- tanToolsDiv.style.cssText = 'position: absolute; left: 0; top: 0; z-index: 5; width: 100%; height:10%;'; // Combine style properties
- // Create a new button element for 'Search Img' with a search icon
- let searchButton = document.createElement('button');
- searchButton.style.cssText = 'background: none; border: none; cursor: pointer;'; // Transparent button
- searchButton.addEventListener('click', function() {
- window.open('https://lens.google.com/uploadbyurl?url=' + encodeURIComponent(imgSrc), '_blank');
- });
- let searchIcon = document.createElement('i');
- searchIcon.className = 'material-icons';
- searchIcon.style.color = 'white'; // Set the icon color
- searchIcon.textContent = 'search'; // Set the icon text
- searchButton.appendChild(searchIcon);
- tanToolsDiv.appendChild(searchButton);
- // Create a new button element for 'View Image' with a view icon
- let viewButton = document.createElement('button');
- viewButton.style.cssText = 'background: none; border: none; cursor: pointer;'; // Transparent button
- viewButton.addEventListener('click', function() {
- window.open(imgSrc, '_blank');
- });
- let viewIcon = document.createElement('i');
- viewIcon.className = 'material-icons';
- viewIcon.style.color = 'white'; // Set the icon color
- viewIcon.textContent = 'visibility'; // Set the icon text
- viewButton.appendChild(viewIcon);
- tanToolsDiv.appendChild(viewButton);
- // Append the TanTools div to the parent element
- thumbnail.parentNode.parentNode.appendChild(tanToolsDiv);
- }
- });
- })
- })();