您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds a download button to the video player.
当前为
// ==UserScript== // @name Vimeo Download // @namespace schwarztee // @description Adds a download button to the video player. // @include https://vimeo.com/* // @copyright 2015, schwarztee // @license MIT // @version 0.2.1 // @grant none // ==/UserScript== 'use strict'; (function(){ // helper: find DOM element function find( selector ) { return document.querySelector( selector ); } // wait for player to be ready and set up periodic video check function setup() { // controller object in DOM and video element available? if ( window && 'vimeo' in window && find( '.video video' ) ) { // keep track of video URL var currentURL = ''; // periodically check video (to follow quality changes) setInterval( function checkVideo() { // find the main video element and get source URL var newURL = find( '.video video' ).src; // different from previously found URL? if ( newURL != currentURL ) { // developer information console.log( "[Vimeo Download] Found new video URL:", newURL ); // make new download button makeButton( newURL ); // remember new URL currentURL = newURL; } }, 500 ); } else { // try again later setTimeout( setup, 500 ); } } // add download button to video player controls function makeButton( url ) { var title, height, qualityInfo; // try to get video metadata // (this can easily break if Vimeo updates their object tree) try { // get video ID var videoId = window['vimeo']['clip_page_config']['clip']['id']; // retrieve active player properties var videoInfo = window['vimeo']['clips'][videoId]['video']; // get title and video height title = videoInfo['title']; height = videoInfo['height']; // prepare quality information from video height qualityInfo = " ("+height+"p)"; // log gathered information console.log( "[Vimeo Download] Making download button for \""+title+"\" ("+height+"p)" ); } catch ( error ) { // set quality information to empty string qualityInfo = ""; // output a warning console.warn( "[Vimeo Download] Making download button for unknown video, error retrieving meta data:", error ); } // make valid filename from title var filename = title.replace( /[<>:"\/\\|?*]/g, '' ) + '.mp4'; // remove old button if existing var oldButton = find( '.button.dwnld' ); oldButton && oldButton.remove(); // create new button var button = document.createElement( 'a' ); button.href = url; button.target = '_blank'; button.download = filename; button.innerHTML = "⥥"; button.title = "Download" + qualityInfo; button.setAttribute( 'class', "button dwnld" ); button.setAttribute( 'style', 'display: inline-block; font-size: 1.7em; margin: -0.4em 0 0 0.4em; color: #fff' ); // apply mouseover effect button.onmouseenter = function() { button.style.color = 'rgb(68,187,255)'; }; button.onmouseleave = function() { button.style.color = '#fff'; }; // find control bar and add button find( '.play-bar' ).appendChild( button ); } // start looking for video player setup(); })();