Replace private video placeholders with actual thumbnail images.
// ==UserScript==
// @name ThisVid Private Thumbnail Revealer
// @namespace https://thisvid.com/
// @version 1.0
// @description Replace private video placeholders with actual thumbnail images.
// @author BlueAnivia
// @match https://thisvid.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=thisvid.com
// @grant none
// @license MIT
// ==/UserScript==
(function() {
'use strict';
function revealPrivateThumbs() {
document.querySelectorAll('.thumb.private').forEach(thumb => {
const style = thumb.getAttribute('style') || '';
const match = style.match(/url\(["']?(.*?)["']?\)/i);
if (!match) return;
let thumbUrl = match[1];
if (thumbUrl.startsWith('//')) {
thumbUrl = 'https:' + thumbUrl;
}
const oldImg = thumb.querySelector('img');
if (!oldImg) return;
if (oldImg.dataset.realThumbInjected) return;
oldImg.src = thumbUrl;
oldImg.alt = 'Thumbnail';
oldImg.dataset.realThumbInjected = '1';
oldImg.style.display = 'block';
oldImg.style.width = '100%';
oldImg.style.height = '100%';
oldImg.style.objectFit = 'cover';
});
}
revealPrivateThumbs();
new MutationObserver(revealPrivateThumbs).observe(document.body, {
childList: true,
subtree: true
});
})();