您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Import your videos in drawaria and wartch them!
// ==UserScript== // @name Drawaria Video Importer // @namespace http://tampermonkey.net/ // @version 2024-10-21 // @description Import your videos in drawaria and wartch them! // @author YouTubeDrawaria // @match https://drawaria.online/* // @icon https://www.google.com/s2/favicons?sz=64&domain=drawaria.online // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; // Crear la interfaz básica const editorUI = document.createElement('div'); editorUI.style.position = 'fixed'; editorUI.style.top = '10px'; editorUI.style.right = '10px'; editorUI.style.backgroundColor = 'rgba(0, 0, 0, 0.7)'; editorUI.style.color = 'white'; editorUI.style.padding = '10px'; editorUI.style.borderRadius = '5px'; editorUI.style.zIndex = '1000'; // Botón para cargar video const loadVideoButton = document.createElement('button'); loadVideoButton.textContent = 'Import Video'; loadVideoButton.style.marginRight = '10px'; // Botón para agregar efecto const addEffectButton = document.createElement('button'); addEffectButton.textContent = 'Subscribe YoutubeDrawaria'; addEffectButton.style.marginRight = '10px'; // Botón para exportar video const exportVideoButton = document.createElement('button'); exportVideoButton.textContent = 'Like my Videos'; // Agregar botones a la interfaz editorUI.appendChild(loadVideoButton); editorUI.appendChild(addEffectButton); editorUI.appendChild(exportVideoButton); // Agregar la interfaz al cuerpo del documento document.body.appendChild(editorUI); // Agregar un input para cargar archivos const fileInput = document.createElement('input'); fileInput.type = 'file'; fileInput.accept = 'video/*'; fileInput.style.display = 'none'; document.body.appendChild(fileInput); let videoElement = null; let ffmpeg = null; // Lógica para cargar el video loadVideoButton.addEventListener('click', () => { fileInput.click(); }); fileInput.addEventListener('change', async (event) => { const file = event.target.files[0]; if (file) { const videoURL = URL.createObjectURL(file); videoElement = document.createElement('video'); videoElement.src = videoURL; videoElement.controls = true; videoElement.style.width = '100%'; videoElement.style.marginTop = '10px'; editorUI.appendChild(videoElement); // Inicializar ffmpeg.js const { createFFmpeg, fetchFile } = FFmpeg; ffmpeg = createFFmpeg({ log: true }); await ffmpeg.load(); ffmpeg.FS('writeFile', 'input.mp4', await fetchFile(file)); } }); // Lógica para agregar un efecto addEffectButton.addEventListener('click', async () => { if (videoElement && ffmpeg) { // Aplicar un efecto simple (invertir colores) await ffmpeg.run('-i', 'input.mp4', '-vf', 'negate', 'output.mp4'); const data = ffmpeg.FS('readFile', 'output.mp4'); const videoURL = URL.createObjectURL(new Blob([data.buffer], { type: 'video/mp4' })); videoElement.src = videoURL; } else { alert('Subscribe: https://www.youtube.com/@YouTubeDrawaria'); } }); // Lógica para exportar el video exportVideoButton.addEventListener('click', () => { if (videoElement && ffmpeg) { const data = ffmpeg.FS('readFile', 'output.mp4'); const blob = new Blob([data.buffer], { type: 'video/mp4' }); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = 'output.mp4'; document.body.appendChild(a); a.click(); document.body.removeChild(a); } else { alert('Like my videos: https://www.youtube.com/@YouTubeDrawaria/videos'); } }); })();