Copy Video Source Link

Copies the source URL of the currently playing video in various streaming sites to clipboard, opens it in a new tab, or provides a safe-to-share link.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey, Greasemonkey или Violentmonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Violentmonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Violentmonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Userscripts.

Чтобы установить этот скрипт, сначала вы должны установить расширение браузера, например Tampermonkey.

Чтобы установить этот скрипт, вы должны установить расширение — менеджер скриптов.

(у меня уже есть менеджер скриптов, дайте мне установить скрипт!)

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

(у меня уже есть менеджер стилей, дайте мне установить скрипт!)

// ==UserScript==
// @name         Copy Video Source Link
// @namespace    https://naeembolchhi.github.io/
// @version      2.38
// @description  Copies the source URL of the currently playing video in various streaming sites to clipboard, opens it in a new tab, or provides a safe-to-share link.
// @author       NaeemBolchhi
// @license      GPL-3.0-or-later
// @match        https://www2.movies7.to/*
// @match        https://4anime.biz/*
// @match        https://sflix.to/*
// @match        https://solarmovies.win/*
// @match        https://solarmovie.ma/*
// @match        https://animepahe.com/*
// @match        https://aniwave.to/*
// @match        https://azm.to/*
// @match        https://cineb.net/*
// @match        https://flixtor.video/*
// @match        https://flixtor.id/*
// @match        https://fmovies.to/*
// @match        https://fmovies2.cx/*
// @match        https://fmovies.kim/*
// @match        https://fmovies.ps/*
// @match        https://1fmovies.co/*
// @match        https://streamm4u.com/*
// @match        https://hdonline.co/*
// @match        https://9goaltv.cc/*
// @match        https://9goaltv.in/*
// @match        https://kissasian.li/*
// @match        https://*.fboxtv.com/*
// @match        https://filmoflix.app/*
// @match        https://filmoflix.zip/*
// @icon         data:image/png;base64,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
// @run-at       document-idle
// @grant        none
// ==/UserScript==

(function() {
'use strict';

// Various ICONs used in the script.
const toggleSVG = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M7 11H1v2h6v-2zm2.17-3.24L7.05 5.64 5.64 7.05l2.12 2.12 1.41-1.41zM13 1h-2v6h2V1zm5.36 6.05l-1.41-1.41-2.12 2.12 1.41 1.41 2.12-2.12zM17 11v2h6v-2h-6zm-5-2c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm2.83 7.24l2.12 2.12 1.41-1.41-2.12-2.12-1.41 1.41zm-9.19.71l1.41 1.41 2.12-2.12-1.41-1.41-2.12 2.12zM11 23h2v-6h-2v6z"/></svg>';
const copySVG = '<svg id="orb-copy-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg>';
const copyGREEN = '<svg id="orb-green-svg" style="display: none;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M22,5.18L10.59,16.6l-4.24-4.24l1.41-1.41l2.83,2.83l10-10L22,5.18z M19.79,10.22C19.92,10.79,20,11.39,20,12 c0,4.42-3.58,8-8,8s-8-3.58-8-8c0-4.42,3.58-8,8-8c1.58,0,3.04,0.46,4.28,1.25l1.44-1.44C16.1,2.67,14.13,2,12,2C6.48,2,2,6.48,2,12 c0,5.52,4.48,10,10,10s10-4.48,10-10c0-1.19-0.22-2.33-0.6-3.39L19.79,10.22z"/></svg>';
const copyRED = '<svg id="orb-red-svg" style="display: none;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8 0-1.85.63-3.55 1.69-4.9L16.9 18.31C15.55 19.37 13.85 20 12 20zm6.31-3.1L7.1 5.69C8.45 4.63 10.15 4 12 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.55-1.69 4.9z"/></svg>';
const linkSVG = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"/></svg>';
const shareSVG = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z"/></svg>';

// Some variables for recognizing links and websites.
let sourceLINK = "document.querySelector('iframe').src";
let sitename = window.location.hostname;

// JSON for site matching.
const siteLIST = [
    {"match": "sflix", "video": "#iframe-embed"},
    {"match": "kissasian", "video": "#my_video_1"}
];

// Loop with siteLIST to set proper sourceLINK value.
(function() {
    for (let x = 0; x < siteLIST.length; x++) {
        if (sitename.match(siteLIST[x].match)) {
            sourceLINK = "document.querySelector('" + siteLIST[x].video + "').src";
        }
    }
})();

// Define dark and light colors.
const orbWhite = `:root {
  --orb-background-100: #f8f8ff;
  --orb-background-95: #eaeaf2;
  --orb-background-reverse: #0f0f0f;
  --orb-foreground: #000000;
  --orb-foreground-reverse: #f8f8ff;
  --orb-warning-red: #ff0000;
  --orb-success-green: #28cc28;
}`;
const orbBlack = `:root {
  --orb-background-100: #0f0f0f;
  --orb-background-95: #1c1c1c;
  --orb-background-reverse: #f8f8ff;
  --orb-foreground: #f8f8ff;
  --orb-foreground-reverse: #0f0f0f;
  --orb-warning-red: #7f0000;
  --orb-success-green: #146614;
}`;

// Function for setting theme choice.
function orbColor() {
    if (sitename.match(/streamm4u/)) {
        return orbBlack;
    } else {
        return orbWhite;
    }
}

// Functions for injecting CSS, JS, and HTML.
function addStyle(css) {
    var head, style;
    head = document.getElementsByTagName('head')[0];
    if (!head) {window.location.reload();}
    style = document.createElement('style');
    style.type = 'text/css';
    style.innerHTML = css;
    head.appendChild(style);
}
function addScript(js) {
    var body, script;
    body = document.getElementsByTagName('body')[0];
    if (!body) {window.location.reload();}
    script = document.createElement('script');
    script.type = "text/javascript";
    script.innerHTML = js;
    body.appendChild(script);
}
function addElement(html) {
    var body, element;
    body = document.getElementsByTagName('body')[0];
    if (!body) {window.location.reload();}
    element = document.createElement('controlcenter');
    element.innerHTML = html;
    body.appendChild(element);
}

// Defining CSS of the script.
const toggleStyle = `
@import url("https://fonts.googleapis.com/css2?family=PT+Sans&display=swap");
${orbColor()}
orbinfo {
  background: var(--orb-background-100);
  border-radius: 50px;
  bottom: 0;
  box-shadow: 0 0 4px 1px rgba(0, 0, 0, 0.45);
  color: var(--orb-foreground);
  font-family: "PT Sans", sans-serif !important;
  font-size: 14px;
  left: 80px;
  line-height: 1;
  opacity: 0;
  padding: 4px 10px;
  position: fixed;
  transition: opacity 240ms ease-in-out;
  white-space: nowrap;
  z-index: -2147483647;
}
orbinfo.orb-toggle {
  transform: translate(0,-39px);
}
orbinfo.orb-copy {
  transform: translate(0,-99px);
}
orbinfo.orb-link {
  transform: translate(0,-159px);
}
orbinfo.orb-share {
  transform: translate(0,-219px);
}
orbinfo.orb-active {
  opacity: 1;
  z-index: 2147483647;
}
orb {
  display: flex;
  align-items: center;
  justify-content: center;
  position: fixed;
  bottom: 30px;
  left: 25px;
  height: 40px;
  width: 40px;
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(0, 0, 0, 0.35);
}
orb:hover {
  box-shadow: 0 0 4.5px 1.5px rgba(0, 0, 0, 0.45);
  cursor: pointer;
}
orb > svg {
  box-sizing: content-box;
  fill: var(--orb-foreground) !important;
  height: 20px;
  width: 20px;
}
orb.orb-control-toggle {
  background: var(--orb-background-100);
  opacity: 0.3;
  transform: translate(0,0);
  z-index: 2147483647;
  transition: transform 150ms ease-in-out, opacity 240ms;
}
orb.orb-control-toggle:hover {
  opacity: 1;
  transition: transform 150ms ease-in-out, opacity 240ms;
}
orb.orb-control-toggle > svg {
  transform: rotate(0deg);
  transition: transform 200ms ease-in-out;
}
orb.orb-control-copy {
  background: var(--orb-background-95);
  transform: translate(0,-60px);
  z-index: 2147483646;
  transition: transform 150ms ease-in-out, opacity 240ms;
}
orb.orb-control-link {
  background: var(--orb-background-95);
  transform: translate(0,-120px);
  z-index: 2147483645;
  transition: transform 150ms ease-in-out, opacity 240ms;
}
orb.orb-control-share {
  background: var(--orb-background-95);
  transform: translate(0,-180px);
  z-index: 2147483644;
  transition: transform 150ms ease-in-out, opacity 240ms;
}
orb.orb-hidden {
  transform: translate(0,0);
  opacity: 0;
  transition: transform 150ms ease-in-out, opacity 240ms;
}
orb.orb-active {
  opacity: 1 !important;
}
orb.orb-active > svg {
  transform: rotate(180deg);
  transition: transform 200ms ease-in-out;
}
orb.orb-color-red {
  background: var(--orb-warning-red) !important;
}
orb.orb-color-green {
  background: var(--orb-success-green) !important;
}
orb.orb-color-red > #orb-red-svg, orb.orb-color-green > #orb-green-svg {
  display: inline !important;
}
orb.orb-color-red > #orb-copy-svg, orb.orb-color-green > #orb-copy-svg {
  display: none !important;
}
orb.orb-color-flip {
  background: var(--orb-background-reverse) !important;
}
orb.orb-color-flip > svg {
  fill: var(--orb-foreground-reverse) !important;
}
div.orb-curtain {
  position: fixed;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
  z-index: 2147483640;
}
div.orb-nothing {
  display: none;
}
`;

// Defining HTML of the script.
const toggleElement = `
<orbinfo class="orb-toggle">Toggle Quick Commands</orbinfo>
<orbinfo class="orb-copy">Copy Video Source Link</orbinfo>
<orbinfo class="orb-link">Open Video Source Link in New Tab</orbinfo>
<orbinfo class="orb-share">Get Safely Sharable Video Link</orbinfo>
<orb class="orb-control-toggle" onclick="setOrbLink();">${toggleSVG}</orb>
<orb class="orb-control-copy orb-hidden">${copySVG + copyGREEN + copyRED}</orb>
<a target="_blank"><orb class="orb-control-link orb-hidden">${linkSVG}</orb></a>
<a target="_blank"><orb class="orb-control-share orb-hidden">${shareSVG}</orb></a>
<div class="orb-curtain orb-nothing"></div>
`;

// Defining JS of the script.
const toggleScript = `
function setOrbLink() {
    if (!document.querySelector('iframe')) {
        alert('No video found. Play a video first.');
        return;
    } else {
        document.querySelector('orb.orb-control-link').parentNode.href = ${sourceLINK};
        var encodedLINK = encodeURIComponent(document.querySelector('orb.orb-control-link').parentNode.href);
        document.querySelector('orb.orb-control-share').parentNode.href = "https://disshit.github.io/take.html?x=lnk&y=" + encodedLINK + "&z=1";
    }
}
document.querySelector('orb.orb-control-copy').addEventListener("click", (function() {
    navigator.clipboard.writeText(${sourceLINK}).then(function() {
        document.querySelector('orb.orb-control-copy').classList.add('orb-color-green');
    }, function() {
        document.querySelector('orb.orb-control-copy').classList.add('orb-color-red');
    });
    setTimeout((function(){
        document.querySelector('orb.orb-control-copy').classList.remove('orb-color-green');
        document.querySelector('orb.orb-control-copy').classList.remove('orb-color-red');
    }),1000);
}));

function orbToggleMain() {
    if (document.querySelector('orb.orb-control-copy').className.match(/hidden/i)) {
        if (document.querySelector('iframe')) {
            document.querySelector('orb.orb-control-copy').classList.remove('orb-hidden');
            document.querySelector('orb.orb-control-link').classList.remove('orb-hidden');
            document.querySelector('orb.orb-control-share').classList.remove('orb-hidden');
            document.querySelector('orb.orb-control-toggle').classList.add('orb-active');
            document.querySelector('div.orb-curtain').classList.remove('orb-nothing');
        }
	} else {
        document.querySelector('orb.orb-control-copy').classList.add('orb-hidden');
        document.querySelector('orb.orb-control-link').classList.add('orb-hidden');
        document.querySelector('orb.orb-control-share').classList.add('orb-hidden');
        document.querySelector('orb.orb-control-toggle').classList.remove('orb-active');
        document.querySelector('orbinfo.orb-toggle').classList.remove('orb-active');
        document.querySelector('orbinfo.orb-copy').classList.remove('orb-active');
        document.querySelector('orbinfo.orb-link').classList.remove('orb-active');
        document.querySelector('orbinfo.orb-share').classList.remove('orb-active');
        document.querySelector('div.orb-curtain').classList.add('orb-nothing');
	}
}
document.querySelector('orb.orb-control-toggle').addEventListener("click", orbToggleMain);
document.querySelector('div.orb-curtain').addEventListener("click", orbToggleMain);

document.querySelector('orb.orb-control-link').parentNode.addEventListener("click", (function() {
    document.querySelector('orb.orb-control-link').classList.add('orb-color-flip');
    setTimeout((function(){
        document.querySelector('orb.orb-control-link').classList.remove('orb-color-flip');
    }),1000);
}));
document.querySelector('orb.orb-control-share').parentNode.addEventListener("click", (function() {
    document.querySelector('orb.orb-control-share').classList.add('orb-color-flip');
    setTimeout((function(){
        document.querySelector('orb.orb-control-share').classList.remove('orb-color-flip');
    }),1000);
}));
document.querySelector('orb.orb-control-toggle').addEventListener("mouseover", (function() {
	document.querySelector('orbinfo.orb-toggle').classList.add('orb-active');
}));

document.querySelector('orb.orb-control-toggle').addEventListener("mouseout", (function() {
	document.querySelector('orbinfo.orb-toggle').classList.remove('orb-active');
}));
document.querySelector('orb.orb-control-copy').addEventListener("mouseover", (function() {
	document.querySelector('orbinfo.orb-copy').classList.add('orb-active');
}));
document.querySelector('orb.orb-control-copy').addEventListener("mouseout", (function() {
	document.querySelector('orbinfo.orb-copy').classList.remove('orb-active');
}));
document.querySelector('orb.orb-control-link').addEventListener("mouseover", (function() {
	document.querySelector('orbinfo.orb-link').classList.add('orb-active');
}));
document.querySelector('orb.orb-control-link').addEventListener("mouseout", (function() {
	document.querySelector('orbinfo.orb-link').classList.remove('orb-active');
}));
document.querySelector('orb.orb-control-share').addEventListener("mouseover", (function() {
	document.querySelector('orbinfo.orb-share').classList.add('orb-active');
}));
document.querySelector('orb.orb-control-share').addEventListener("mouseout", (function() {
	document.querySelector('orbinfo.orb-share').classList.remove('orb-active');
}));
`;

// Invoking injection functions with appropriate constants.
addStyle(toggleStyle); addElement(toggleElement); addScript(toggleScript);

})();