您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds a download button to the Vimeo video player. This is a rewrite of "Vimeo Embed Download" originally created by aleixdev (https://gf.qytechs.cn/en/scripts/376551).
// ==UserScript== // @name Vimeo Download // @namespace http://tampermonkey.net/ // @version 3.2 // @description Adds a download button to the Vimeo video player. This is a rewrite of "Vimeo Embed Download" originally created by aleixdev (https://gf.qytechs.cn/en/scripts/376551). // @author You // @match https://vimeo.com/* // @match https://player.vimeo.com/video/* // @icon https://www.google.com/s2/favicons?sz=64&domain=vimeo.com // @unwrap // ==/UserScript== (function() { if (document.title === 'VimeUhOh') { return; } // function getPlayer() { // if (window.playerConfig) { // return window.playerConfig; // } // const clips = window.vimeo.clips; // const videoId = Object.keys(clips).at(); // if (!videoId) { // throw new Error('[Vimeo Download] Error retrieving video meta data:', clips); // } // return clips[videoId] // } // const { request, video } = getPlayer(); // console.log(request.files); // const streams = request.files.progressive.sort((a, b) => b.width - a.width); // console.log(streams); // const { url, quality } = streams[0]; const div = document.createElement('div'); document.querySelectorAll('track[srclang]').forEach(subtitle => { const element = Object.assign(document.createElement('button'), { innerHTML: subtitle.srclang, title: subtitle.srclang, style: 'display: inline-block; font-size: 1.75em; margin: -0.25em 0 0 0.3em; color: rgb(68,187,255)', onclick: function() { this.disabled = true; this.innerText = 'Wait'; fetch(subtitle.src) .then(response => response.blob()) .then(file => { const tempUrl = URL.createObjectURL(file); const aTag = document.createElement("a"); aTag.href = tempUrl; aTag.download = 'Subtitle ' + subtitle.srclang + '.vtt' document.body.appendChild(aTag); aTag.click(); URL.revokeObjectURL(tempUrl); aTag.remove(); }).finally(() => { this.disabled = false; this.innerText = subtitle.srclang }); } }) div.append(element); }) // const button = Object.assign(document.createElement('button'), { // innerHTML: 'Download', // title: 'Download ' + quality, // style: 'display: inline-block; font-size: 1.75em; margin: -0.25em 0 0 0.3em; color: rgb(68,187,255)', // onclick: function() { // console.log(url, quality); // this.disabled = true; // this.innerText = 'Wait'; // fetch(url) // .then(response => response.blob()) // .then(file => { // const tempUrl = URL.createObjectURL(file); // const aTag = document.createElement("a"); // aTag.href = tempUrl; // aTag.download = name // document.body.appendChild(aTag); // aTag.click(); // URL.revokeObjectURL(tempUrl); // aTag.remove(); // }).finally(() => { // this.disabled = false; // this.innerText = 'Download' // }); // } // }) const interval = setInterval(function() { if (!document.querySelector('.vp-controls')) return; clearInterval(interval) document.querySelector('.vp-controls').append(/*button,*/ div); }, 100); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址