// ==UserScript== // @name 磁力边下边播播放器 // @namespace http://tampermonkey.net/ // @version 0.1 // @description 使用Aria2下载磁力链接并播放视频 // @author You // @match *://*/* // @grant none // @require https://cdn.jsdelivr.net/npm/video.js/dist/video.min.js // @require https://cdn.jsdelivr.net/npm/videojs-contrib-hls/dist/videojs-contrib-hls.min.js // ==/UserScript== (function() { 'use strict'; // 检查页面中是否有磁力链接 const magnetLinks = document.querySelectorAll('a[href^="magnet:"]'); if (magnetLinks.length === 0) { alert('页面中没有找到磁力链接!'); return; } // 创建一个视频播放器元素 const videoContainer = document.createElement('div'); videoContainer.style.width = '100%'; videoContainer.style.height = '100%'; document.body.appendChild(videoContainer); const player = videojs(videoContainer, { fluid: true, controls: true, autoplay: false, sources: [] // 初始时没有源,稍后添加 }); // 处理每个磁力链接 magnetLinks.forEach(link => { link.addEventListener('click', function(event) { event.preventDefault(); // 阻止链接的默认行为 const magnetURI = link.href; // 获取磁力链接地址 downloadMagnet(magnetURI); // 下载磁力链接文件并播放 }); }); function downloadMagnet(magnetURI) { const aria2cPath = 'aria2c'; // Aria2的路径,根据实际情况修改 const tempDir = '/tmp'; // 临时文件夹路径,根据实际情况修改 const command = `${aria2cPath} -d "${tempDir}" -o "tempVideo.mp4" "${magnetURI}"`; // Aria2命令行命令 const videoFile = `${tempDir}/tempVideo.mp4`; // 视频文件路径 const child = require('child_process').exec(command); // 执行命令行命令下载视频文件 child.stdout.on('data', (data) => { console.log(`stdout: ${data}`); }); // 输出标准输出信息 child.stderr.on('data', (data) => { console.error(`stderr: ${data}`); }); // 输出错误信息 child.on('exit', (code) => { // 下载完成后设置视频源并播放视频 if (code === 0) { // 如果下载成功(即返回码为0) player.src({ type: "video/mp4", src: videoFile }); // 设置视频源并播放视频 player.play(); // 播放视频 } else { alert('下载失败!'); // 如果下载失败,给出提示信息 } }); } })();