您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
巨量广告下载
当前为
// ==UserScript== // @name 巨量下载 // @namespace http://tampermonkey.net/ // @version 2.1.3 // @description 巨量广告下载 // @author hayasol657 // @run-at document-start // @license MIT License // @grant GM_invokeFn // @include *://cc.oceanengine.com/* // @inject-into page // @require https://cdn.bootcdn.net/ajax/libs/blueimp-md5/2.18.0/js/md5.min.js // @require https://cdn.bootcdn.net/ajax/libs/jquery/1.7.2/jquery.min.js // ==/UserScript== var metaCache = {}; //hook xhr var origOpen = XMLHttpRequest.prototype.open; XMLHttpRequest.prototype.open = function() { if (arguments[1].indexOf('creative_radar_api/v1/material/info') > -1 || arguments[1].indexOf('creative_radar_api/v1/material/list') > -1) { this.addEventListener('load', function() { if (this.responseType && this.responseType !== "text") return; var res = JSON.parse(this.responseText) var key = 'materials' if (res?.data && typeof res.data === 'object' && 'vid' in res.data) { res.data = {'materials': [res.data]} } 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 id = feeds[i].vid; if (metaCache[id]) continue; feeds[i].id = id; metaCache[id] = feeds[i]; } // console.log(metaCache) } }); } // console.log(arguments) origOpen.apply(this, arguments); }; (function () { var updateItems = async (items) => { if (items.length <= 0) return; return new Promise((resolve, reject) => { $.ajax({ url: "https://cc.oceanengine.com/creative_content_server/api/video/info", type: 'POST', data: JSON.stringify({ "query_ids": items.map(im => im.meta.vid), "water_mark": 'ad' }), success: function (data) { if (data?.data && Object.keys(data?.data).length > 0) { items.forEach(item => { item.url = data.data[item.meta.vid].video_url; item.meta.video = data.data[item.meta.vid]; item.meta.cover = data.data[item.meta.vid].cover_url; item.meta.title = item.meta.bestTitle; }); } // console.log("updateItems", items) resolve(items) }, error: function (error) { reject(error) }, }); }); } var getItemByMeta = (meta) => { if (!meta) return null; var id = `mona-${md5(meta.id)}` if ($(`#${id}`).length > 0) return null; var dom = $(`<div id='${id}'></div>`) return { id, url:"", dom, meta } } var detailPrefix = "/inspiration/creative-radar/detail/"; var pageParsers = { detail: async () => { var mid = Object.keys(metaCache)[0]; var item = getItemByMeta(metaCache[mid]) if (item) { item.pdom = $(".radar-detail-preview-box").find(".cc-video-player"); if (item.pdom.length > 0) await updateItems([item]); return [item]; } return []; }, list: async () => { var items = [] for (var [id, meta] of Object.entries(metaCache)) { var imgUrl = new URL(meta.head_image_uri); var item = getItemByMeta(meta); if (item) { item.pdom = $(`.poster-image[style*='${imgUrl.pathname}']`).parent(); if (item.pdom.length > 0) items.push(item); } // 每次返回N个,分多次 if (items.length >= 10) break; } if (items.length > 0) { await updateItems(items); } return items } } var getPageParser = () => { var url = new URL(window.location.href); if (url.pathname === "/inspiration/creative-radar/video") { return pageParsers.list; } else if (url.pathname.indexOf(detailPrefix) > -1) { return pageParsers.detail; } else { throw 999; } } var parser = { parseItems: async () => { var pr = getPageParser() if (!pr) return [] return pr() } } GM_invokeFn("regParser", parser) })()