-
-
Save uahim/dc82bbedd3b5e6c999af39ab5d45c643 to your computer and use it in GitHub Desktop.
// ==UserScript== | |
// @name arte stream url | |
// @namespace http://tampermonkey.net/ | |
// @version 0.1.7 | |
// @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("_-_","-"); | |
window.onload = 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-adi73s'); | |
var node = document.createElement("span"); | |
node.setAttribute('class', ' ds-12ek84r'); | |
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-z8l0xl')[0]) { | |
document.getElementsByClassName(' ds-z8l0xl')[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"'); | |
} | |
}); | |
}; |
on a second thought, I can only imagine some browsers prevent scripts from creating prompts/dialogs, will check into that now
@frouty or you can use the shell script, it does the same thing
https://gist.github.com/uahim/9b755b3a728bf790f67488f84f26a3ba
It's work no more for few days !
@jeanpierrebertola should have told me earlier :)
fixed, let me know if it works for you now
Hello Thank you for your answer and your effort
I tryed with your 0.1.5 version it doesn't work on tapermonkey and violent monkey !
the arte channel is detected by the script but no Stream Url on arte page
@jeanpierrebertola try now ? v 0.1.5.1
tested with violentmonkey in a fairly recent opera on windows
It's your new version but it still not working in opera 88.0.4412.53 last version !
thank you
Sorry it's work thank you so much ++++++
Perfect +++
Merci
Hi, uahim
Thank you for your sharing, is it possible to get url from " https://www.arte.tv/de/arte-concert/ "?
This script seems only work on "https://www.arte.tv/de/videos/"
Thank you!
@MMHShen yes, it should work for concerts too, try now (v0.1.5.3)
@MMHShen yes, it should work for concerts too, try now (v0.1.5.3)
Hi, uahim,
Its work now,
Thank yoy!
Hi, uahim
It doesn't work since yesterday, would you kindly have a look? many thanks.
@osvivant try now - 0.1.5.4 should be working
Thanks uahim! works flawless now:)
0.1.5.6 fixes arte concert, sorry
:) thanks!!!!!
0.1.6: updated November 2023 to account for markup changes on arte.tv
thank you but to record with VLC is problematic.
something block
possible to read but not to record
Thank
@jeanpierrebertola for downloading, it's recommended to use yt-dlp or at least ffmpeg, here's a guide for beginners:
https://www.rapidseedbox.com/blog/yt-dlp-complete-guide
thank you ++++++
Hi, it stopped to work these days. Would you please have a look? thank you very much.
ex:
https://www.arte.tv/fr/videos/116710-062-A/le-dessous-des-images/
@osvivant try now
thanks, it works!
ok so I have tried opera with violentmonkey on windows and it works :-(
if you are tech-savvy, you could check the console via developer tools (ctrl + shift + i) for errors
the script is so simple, i cannot imagine what can possibly go wrong to be honest