您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Use a natively uncluttered hardware-accelerated player, no ads or annoyances. Also, easily downloadable videos.
当前为
- // ==UserScript==
- // @name HTML5 player for BBC News
- // @match http://www.bbc.com/*
- // @version 2015.07.16
- // @description Use a natively uncluttered hardware-accelerated player, no ads or annoyances. Also, easily downloadable videos.
- // @grant GM_xmlhttpRequest
- // @namespace https://greasyfork.org/users/4813
- // ==/UserScript==
- for (var i in (src = document.querySelectorAll('script:not([src])')))
- {
- if (typeof src[i] !== 'object' || src[i].textContent.indexOf('externalId') === -1)
- {
- continue;
- }
- var vpid = src[i].textContent.match(/externalId":"([^"]+)"/)[1];
- console.log(i, vpid);
- }
- if (!vpid)
- throw 'BBC HTML5: nothing to do :)';
- GM_xmlhttpRequest(
- {
- method: 'GET',
- url: 'http://open.live.bbc.co.uk/mediaselector/5/select/version/2.0/vpid/' + vpid + '/format/json/mediaset/journalism-http-tablet/',
- onreadystatechange: function(e)
- {
- if (e.readyState !== XMLHttpRequest.DONE)
- {
- return;
- }
- this.responseJSON = JSON.parse(e.responseText);
- /* just for taking a look, please don't mind me! :-) */
- console.log(e, this.responseJSON);
- if (!this.responseJSON.media)
- {
- console.warn('BBC HTML5: the listing did not come with any video at all!', this.responseJSON); return;
- }
- /* add a download button per result video */
- for(var vid in this.responseJSON.media)
- {
- //console.log("=>", vid, this.responseJSON.media, this.responseJSON.media[vid], this.responseJSON.media[vid].connection[0].href);
- console.log("=>", vid, this.responseJSON.media[vid].width,
- this.responseJSON.media[vid].height,
- this.responseJSON.media[vid],
- this.responseJSON.media[vid].connection[0].href);
- dwnbutton = document.createElement("a");
- dwnbutton.setAttribute('style', 'padding-left: 35px; padding-right:12px');
- dwnbutton.textContent = this.responseJSON.media[vid].width + 'x' +
- this.responseJSON.media[vid].height;
- dwnbutton.className = 'icon video';
- dwnbutton.href = this.responseJSON.media[vid].connection[0].href;
- dwnbutton.download = document.querySelector('#media-asset-page-text > h1').textContent + '.' + dwnbutton.textContent + '.mp4';
- /* replace it on the page */
- dwnbuttonHolderElement = document.querySelector('.player-wrapper');
- dwnbuttonHolderElement.appendChild(dwnbutton);
- }
- var hq = 2 // 0;
- /* build our own html5 player with our own stuff */
- vplayer = document.createElement('video');
- vplayer.src = this.responseJSON.media[hq].connection[0].href;
- vplayer.poster = document.querySelector('#media-asset-placeholder').src;
- vplayer.controls = 'true';
- vplayer.autoplay = 'false';
- vplayer.preload = 'none';
- vplayer.volume = '0.4';
- vplayer.style.width = '100%';
- /* replace it on the page */
- videoHolderElement = document.querySelector('#media-asset-page-video');
- videoHolderElement.parentElement.replaceChild(vplayer, videoHolderElement);
- },
- onerror: function(e)
- {
- console.warn('BBC HTML5: Houston, we have an unidentified problem!', e);
- }
- });