Greasy Fork is available in English.
下载腾讯视频
当前为
// ==UserScript==
// @name 腾讯视频下载
// @namespace http://tampermonkey.net/
// @version 0.0.7
// @description 下载腾讯视频
// @author feyaha9619
// @license MIT License
// @run-at document-start
// @grant GM_download
// @match *://v.qq.com/x/cover/*
// @match *://v.qq.com/x/page/*
// @require http://greasyfork.icu/scripts/440006-mono/code/mono.js?version=1021983
// ==/UserScript==
const _META_URL_ = "https://www.douyin.com/web/api/v2/aweme/iteminfo/?item_ids=";
(function () {
var mono = window['mono-descargar'];
var useDefaultErr = mono.FAIL_TO_DEFAULT;
var $ = mono.jQuery;
var md5 = mono.md5;
var onRequest = mono.onRequest;
var itemCache = {}
var parseItem = (item) => {
var key = item.video?.origin_cover?.uri;
if (!key) return;
itemCache[key] = item;
itemCache[key].video_id = itemCache[key].aweme_id;
itemCache[key].title = itemCache[key].desc;
itemCache[key].cover = itemCache[key].video?.origin_cover?.url_list[0];
itemCache[key].url = itemCache[key].video?.play_addr?.url_list[0];
}
onRequest(({url, resp}) => {
if (!resp || !(url.includes('qq.com/proxyhttp'))) return;
console.log('url, resp', url, resp)
if (url.startsWith('//')) url = `https:${url}`;
var res;
try {
res = JSON.parse(resp);
} catch (err) {
return;
}
if (!res) return;
if (url && url.indexOf('graphql') > -1) {
try {
for (var key of ['brilliantData', 'gameLiveCardList', 'visionSearchPhoto', 'brilliantTypeData', 'visionProfilePhotoList']) {
if (res?.data[key] && res.data[key].feeds && res.data[key].feeds.length > 0) {
var feeds = res.data[key].feeds;
for (var i = 0; i < feeds.length; i++) {
var itemData = feeds[i].photo;
itemData.author = feeds[i].author;
metaCache[itemData.id] = itemData;
}
}
}
} catch (e) {}
return;
}
for (var key of ['hotPhotoInfos', 'inspiredAds']) {
if (res?.data && typeof res.data === 'object' &&
key in res.data && res.data[key].length > 0) {
var feeds = res.data[key];
for (var i = 0; i < feeds.length; i++) {
var url = new URL(feeds[i].coverThumbnailUrls[0].url);
var id = url.searchParams.get('clientCacheKey')?.replace('.jpg', '');
feeds[i].id = id;
metaCache[id] = feeds[i];
}
}
}
});
})()