Greasy Fork is available in English.
5278 show m3u8 address
// ==UserScript==// @name 5278 display m3u8 address// @name:zh-CN 5278 display m3u8 address// @namespace:zh-TW 5278_display_m3u8_address// @supportURL https://github.com/zhuzemin// @description 5278 show m3u8 address// @description:zh-CN 5278 show m3u8 address// @description:zh-TW 5278 show m3u8 address// @include https://5278.cc/thread-*-1-1.html// @include https://hbo6.hboav.com/v4/public/Player.php?*// @version 1.04// @run-at document-end// @author zhuzemin// @license Mozilla Public License 2.0; http://www.mozilla.org/MPL/2.0/// @license CC Attribution-ShareAlike 4.0 International; http://creativecommons.org/licenses/by-sa/4.0/// @grant GM_registerMenuCommand// @grant GM_setValue// @grant GM_getValue// @namespace https://greasyfork.org/users/400918// ==/UserScript==let config = {'debug': false,'version': GM_getValue('version') || '2.9.9'};let debug = config.debug ? console.log.bind(console) : function () {};// prepare UserPrefssetUserPref('version',config.version,'Set N_m3u8DL version',`Set N_m3u8DL version`,);let init = function () {if (window.self === window.top) {// let input = document.createElement("input");// input.setAttribute("type", "text");// input.size = window.screen.width;// document.body.insertBefore(input, document.body.firstChild);let title = document.title.replace(' - 成人線上直播一區 - 5278 / 5278論壇 / 我#78論壇', '');let iframe = document.querySelector("iframe.cc5278_player");let src = iframe.getAttribute("src");let hostname = getLocation(src).hostname;debug(hostname);let idx = 1;let urlLst = [];window.addEventListener('message', function (e) {if (e.data.includes('hboav.com')) {debug(e.data);if (!urlLst.includes(e.data)) {debug(urlLst);urlLst.push(e.data);let fullTitle = title;if (urlLst.length > 1) {idx++;fullTitle += "_" + idx;}let N_m3u8DL = document.createElement("input");N_m3u8DL.setAttribute("type", "text");N_m3u8DL.size = window.screen.width;document.body.insertBefore(N_m3u8DL, document.body.firstChild);N_m3u8DL.setAttribute("value", 'N_m3u8DL-CLI_v' + config.version + ' "' + e.data + '" --headers "Referer:' + src + '" --saveName "' + fullTitle + '"');// input.setAttribute("value", e.data);}}});}else {let video = document.querySelector('video');let interval = setInterval(() => {let script = video.querySelector('script');if (script) {//debug(script.innerHTML);//let url = script.innerHTML.match(/ /)[1];let url = unsafeWindow.player.src();debug(url);setInterval(() => { parent.postMessage(url, "*"); }, 4000);clearInterval(interval);}}, 1000);}}window.addEventListener('DOMContentLoaded', init);/*** Create a user setting prompt* @param {string} varName* @param {any} defaultVal* @param {string} menuText* @param {string} promtText* @param {function} func*/function setUserPref(varName, defaultVal, menuText, promtText, func = null) {GM_registerMenuCommand(menuText, function () {var val = prompt(promtText, GM_getValue(varName, defaultVal));if (val === null) { return; } // end execution if clicked CANCELGM_setValue(varName, val);if (func != null) {func(val);}});}function getLocation(href) {let l = document.createElement("a");l.href = href;return l;};