Greasy Fork

Greasy Fork is available in English.

arte stream url

get arte m3u8 stream url

当前为 2025-04-20 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         arte stream url
// @namespace    http://tampermonkey.net/
// @version      0.1.8.2
// @description  get arte m3u8 stream url
// @author       You
// @match        https://www.arte.tv/de/videos/*
// @match        https://www.arte.tv/fr/videos/*
// ==/UserScript==

// this UserJavaScript provides a simple way to get the m3u8 to feed into VLC or any other player capable of playing streams.
// though it's probably best to get the url or download videos via yt-dlp or addons such as The Stream Detector for Firefox
// https://addons.mozilla.org/en-US/firefox/addon/hls-stream-detector/ 

    var loc = window.location.pathname.split('/');
    var lang = loc[1];
    var id = loc[3];
    var name = loc[4];
    var url = "";

    var api_base = " https://api.arte.tv/api/player/v2/config/" + lang + "/";
    var download_url = api_base + id;

    var filmtitle = document.querySelector('meta[property="og:title"]').content;
    [" | ARTE Concert"," | ARTE"," - Komplette Sendung"," - Programm in voller Länge"," - Film in voller Länge"," - Regarder le film complet"," - Regarder l’émission complète"].forEach((item) => { filmtitle = filmtitle.replace(item, "") });
    filmtitle = filmtitle.replace(/ /g, "_").replace(/[^a-z0-9 \.,_-]/gim, "").replace("_-_","-");

    document.getElementsByTagName("body")[0].onclick = function () {
        var para = document.createElement("a");
        para.setAttribute('id', 'dwnl');
        para.setAttribute('style', 'font-weight: bold');
        para.setAttribute('style', 'color: white');
        para.setAttribute('class', ' ds-tgzo04'); 

        var node = document.createElement("span");
        node.setAttribute('class', ' ds-eul86b'); 
        node.innerText = "Stream URL";
        para.appendChild(node);

      if (document.getElementsByClassName(' ds-rymcfw')[0]) {
        document.getElementsByClassName(' ds-rymcfw')[0].insertBefore(para, null);
      } else if (document.getElementsByClassName(' ds-2aqyii')[0]) {
        document.getElementsByClassName(' ds-2aqyii')[0].insertBefore(para, null);
      }

                var getJSON = function(url, callback) {

                    var xhr = new XMLHttpRequest();
                    xhr.open('GET', url, true);
                    xhr.responseType = 'json';

                    xhr.onload = function() {

                        var status = xhr.status;

                        if (status == 200) {
                            callback(null, xhr.response);
                        } else {
                            callback(status);
                        }
                    };

                    xhr.send();
                };

                getJSON(download_url,  function(err, data) {
                    if (err != null) {
                        console.error(err);
                    } else {
                            url = data.data.attributes.streams[0].url;
                    }
                });
        
      
        document.getElementById('dwnl').addEventListener("click", function(){
              var test = prompt("stream URL (OK for ffmpeg command or cancel)", url);
			    if (test !== null) {
			        prompt("ffmpeg command", 'ffmpeg -referer "' + location.href + '" -user_agent "' + window.navigator.userAgent + '" -i "' + url + '" -c copy -bsf:a aac_adtstoasc "' + filmtitle + '.mp4"');
			    }
        });
      
      
      
      document.getElementsByTagName("body")[0].onclick = function () {}

    };

setTimeout('document.getElementsByTagName("body")[0].click()', 2500);