您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
下载腾讯视频
当前为
// ==UserScript== // @name 腾讯视频下载 // @namespace http://tampermonkey.net/ // @version 0.0.12 // @description 下载腾讯视频 // @author feyaha9619 // @license MIT License // @run-at document-start // @grant GM_download // @include *://v.qq.com/x/cover/* // @require http://greasyfork.icu/scripts/440006-mono/code/mono.js?version=1021983 // ==/UserScript== (function () { var mono = window['mono-descargar']; var $ = mono.jQuery; var md5 = mono.md5; var filename = mono.filename; var onRequest = mono.onRequest; var errCode = mono.FAIL_TO_DEFAULT; var idKey = 'mono-dsg-id'; var itemCache = {} onRequest(({url, resp, _body, method}) => { if (!resp || !(url.includes('qq.com/proxyhttp') && resp.includes('vinfo'))) return; console.log('url, resp', url, resp) var data = typeof resp == "string" ? JSON.parse(resp) : resp; var vinfo = JSON.parse(data.vinfo); vinfo.vl.vi.forEach((item) => { itemCache[item.vid] = { url: item.ul.ui[item.ul.ui.length-1].url, meta: { title: item.ti, cover: item.wl.wi.surl, name: filename(item.ti || document?.title), m3u8Data: item.ul.m3u8 } } }); }); var getItemByMeta = (meta, selector='', selClass='') => { var id = `ks-${md5(meta.id)}` if ($(`[${idKey}=${id}]`).length > 0) return null; var $el = null; if (selector) $el = $(selector) if ($el.length > 0 && selClass) { var ps = $el.parentsUntil(selClass); if (ps.length > 0) $el = $(ps[ps.length - 1]) } if ($el.length <= 0) return null; var container = $el[0]; return { id, url, container, meta } } var cc = () => { var items = []; for (var [id, meta] of Object.entries(metaCache)) { var selector = `.tenvideo_player`; var item = getItemByMeta(meta, selector, '.mod_player') if (!item) continue; if (item) items.push(item); } return items } var parser = async function () { var url = new URL(window.location.href); if (url.indexOf('/x/cover/') !== -1) { return await cc(); } else { throw errCode; } } if (mono?.init) mono.init({ parser }); })()