Closed Xorky closed 5 years ago
NPO heeft z'n API / site aangepast... waarschijnlijk alleen nog via browser / mobile app te zien. Alles lijkt achter DRM te hangen... :-(
Ik heb even zitten kijken, maar volgens mij valt dat wel mee.... tenminste. Ik kan deze stream gewoon afspelen met iets als VLC: https://nl-ams-p1-am5.cdn.streamgate.nl/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NTE0NDMyODIsInVyaSI6Ilwvdm9kXC9ucG9cL3VzcFwvbnBvXC9kYXNoX3VuZW5jcnlwdGVkXC9WUFdPTl8xMjk1MzkwXC9WUFdPTl8xMjk1MzkwX3YxNTQ5MzY0ODM2LmlzbSIsImNsaWVudF9pcCI6IjIxMy4xMjYuMTAzLjIxMiJ9.r4klSyHOrjcYyJZQXIRk6OhfUT1uG6MXo--z6hiMMoo/vod/npo/usp/npo/dash_unencrypted/VPWON_1295390/VPWON_1295390_v1549364836.ism/stream.mpd
Heb je die eerst uit de browser (F12) gevist? Maar kun je 'm ook in z'n geheel downloaden naar een file? Uiteraard werkt de bovenstaande lange link niet voor mij... (hij is authorized voor jou)...
Gebuik jij de nieuwe API?
Gewoon met F12 uit de browser gehaald ja. Een MDP bestand is gewoon een XML bestand met de streamdefinities. Ik kan hem op meerdere PC's openen via VLC (versie 3.0.6) Met VLC kan je hem ook gewoon als een .ts bestand op schijf opslaan en opnieuw afspelen. VLC ondersteund geen DRM beveiligde streams. Naar mijn idee zal DRM niet zo zeer het probleem zijn.
Ok, browser kan ik me nog indenken... die doet een hoop javascript. Maar, werkt alles met jouw plugin/script nog? Dus zonder browser... Heb je verschillende links geprobeerd?
O sorry, ik dacht dat je de author was van de plugin... Maar dat is "Opvolger".
Maar goed, er lopen hier meerdere dingen door elkaar heen.
kortom, je kan alleen met kodi 18.x met de nieuwe addon welke dus hier te vinden is: https://github.com/Opvolger/plugin.video.uzg/releases alles zien.
Ik zal nog een nieuwe versie uitbrengen welke deze addon automatisch installeerd met uzg-addon
Beste Opvolger,
Op het moment is bij mij wel een probleem met het afspelen.
Draait op Kodi 18 en UZG 3.1.0
Het volgende is in de log file opgeslagen:
18:45:55.778T:139888427652864ERROR:EXCEPTIONThrown(PythonToCppException):-->Pythoncallback/scriptreturnedthefollowingerror<-- -NOTE:IGNORINGTHISCANLEADTOMEMORYLEAKS! ErrorType:<type'exceptions.ValueError'> ErrorContents:NoJSONobjectcouldbedecoded Traceback(mostrecentcalllast): File"/storage/.kodi/addons/plugin.video.uzg/addon.py",line164,in<module> router(sys.argv[2][1:]) File"/storage/.kodi/addons/plugin.video.uzg/addon.py",line146,inrouter play_video(params['whatson_id']) File"/storage/.kodi/addons/plugin.video.uzg/addon.py",line130,inplay_video play_item=xbmcgui.ListItem(path=uzg.get_play_url(whatson_id)) File"/storage/.kodi/addons/plugin.video.uzg/resources/lib/uzg.py",line138,inget_play_url returnself.npoHelpers.get_play_url(whatson_id) File"/storage/.kodi/addons/plugin.video.uzg/resources/lib/npoapihelpers.py",line36,inget_play_url json_data=json.loads(data) File"/usr/lib/python2.7/json/__init__.py",line339,inloads File"/usr/lib/python2.7/json/decoder.py",line364,indecode File"/usr/lib/python2.7/json/decoder.py",line382,inraw_decode ValueError:NoJSONobjectcouldbedecoded -->EndofPythonscripterrorreport<-- 18:45:55.816T:139889803177344ERROR:PlaylistPlayer:skippingunplayableitem:0,path[plugin://plugin.video.uzg/?action=play&whatson_id=VPWON_1267141]
Hallo Beste Opvolger, Ik heb Kodi geupdated naar 18.1 en tevens de https://mirrors.kodi.tv/addons/leia/script.module.inputstreamhelper/script.module.inputstreamhelper-0.3.3.zip geinstalleerd. Echter geen resultaat :( Ben benieuwd wat ik verkeerd doe. Het zip bestand heb ik zoals gebruikelijk geinstalleerd middels 'Install from zip file"- methode. Ook via de addon Video Test streams' gecontroleerd of ik IA Dash Widevine kan afspelen en dat lijkt inderdaad het geval.
I'm experiencing the same as @Pic00 ..
ik zie het nu ook, hij is "weer¨ stuk. ik zal hem weer proberen te maken, maar dat word niet vandaag.
Na een update naar LibreELEC (9.0.1), Leia 18.1 op een RPI2.arm architectuur. Mijn log: ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
Okee, succes bij het 'repareren'! MvG en BvD ;-) George
Hoi! Ik heb er net even naar gekeken, en er lijkt inderdaad het een en ander veranderd. Dit is de eerste keer dat ik er naar kijk (uberhaupt naar de NPO API..) dus ik ben er niet zeker van, maar als ik naar de json data kijk die ik terug krijg dan lijkt dat niet op de data die python verwacht. Ik wil naar bed dus ik gooi hier even in de groep waar ik nu ben. Ik gebruik bash
, curl
voor de requests en jq
om de json data te formatteren, jq is niet standaard dus die moet je wsl installeren.
Alleereerst een programmalijst van het journaal:
curl -s -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:64.0) Gecko/20100101 Firefox/64.0" -H "ApiKey: e45fe473feaf42ad9a215007c6aa5e7e" https://start-api.npo.nl/page/franchise/NOSJournaal | jq
Ik vind hier geen whatson_id in, wel een "id" en een "prid" dat ook werkt in de volgende stappen. De output van dit commando zit in de attachment: NOSJournaal.txt
Als ik dan 1 van die id's gebuik (laten we zeggen: POW_04059364) dan kan ik, volgens mij, de mogelijke files ophalen. Omdat ik hier ook een auth token voor nodig heb, heb ik het even in een shell-script gegoten:
#!/usr/bin/env bash
whatson_id="POW_04059364"
token=$(curl -s -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:64.0) Gecko/20100101 Firefox/64.0" -H "ApiKey: e45fe473feaf42ad9a215007c6aa5e7e" http://ida.omroep.nl/app.php/auth | jq -r ".token")
curl -s -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:64.0) Gecko/20100101 Firefox/64.0" "http://ida.omroep.nl/app.php/$whatson_id?adaptive&adaptive=yes&part=1&token=$token" | jq
De output is dan:
{
"limited": false,
"site": null,
"items": [
[
{
"label": "Adaptive",
"contentType": "odi",
"url": "https://odis.omroep.nl/video/ida/adaptive/1954d811a0071c1ad7396589197184ee/5c79a7cf/POW_04059364/1?extension=m3u8&type=jsonp&callback=?",
"format": "hls"
},
{
"label": "Hoog",
"contentType": "odi",
"url": "https://odis.omroep.nl/video/ida/h264_std/a7758891879092789651b6883dae4a63/5c79a7cf/POW_04059364/1?type=jsonp&callback=?",
"format": "mp4"
},
{
"label": "Normaal",
"contentType": "odi",
"url": "https://odis.omroep.nl/video/ida/h264_bb/9c8e387a62f7db9c93120b6388d38c78/5c79a7cf/POW_04059364/1?type=jsonp&callback=?",
"format": "mp4"
},
{
"label": "Laag",
"contentType": "odi",
"url": "https://odis.omroep.nl/video/ida/h264_sb/782b166c9b0b641caf05fb380fc153b3/5c79a7cf/POW_04059364/1?type=jsonp&callback=?",
"format": "mp4"
}
]
]
}
Wat er hoopvol uitziet, maar ook wat onzekerheid met zich meebrengt. Wat doet dat 2e vraagteken in de url? Ik neem aan de callback-variabele die gebruikt wordt voor jsonp, maar is dat mss verplicht geworden?
In python gebeurt er dit:
streamdataurl = json_data['items'][0][0]['url']
streamurl = str(streamdataurl.split("?")[0]) + '?extension=m3u8'
wat, zo snel ik even lees, moet resulteren in: https://odis.omroep.nl/video/ida/adaptive/1954d811a0071c1ad7396589197184ee/5c79a7cf/POW_04059364/1?extension=m3u8
Alleen als ik die url aanroep krijg ik een scene uit Office Space of een Rickroll. Haha, well played NPO.. well played :)
... Trusten!
Dat had ik ook al, geweldig. maar ik ben niet voor 1 gat te vangen. het koste mij 2 nachten, maar ik heb het nu gedeeltelijk voor elkaar. met wat steekproeven werken nu videos van 2019 t/m half 2017. ze gebruiken alleen nog een codec welke niet werkt op hele oude video's (zonder DRM zelfs) vlc steelt ze wel af.
nog geen release gemaakt, maar commits wel gedaan.
Goed bezig zeg!
De link naar Office Space of Rickroll is wel briljant, haha.
En alvast een biertje voor vanavond Opvolger!
Echt goed bezig Bas. Fijn dat we weer snel naar Uitzending gemist kunnen kijken.
Dank Bas,
Kun je met KODI/jouw plugin ook de videos downloaden? Zover ik kan zien niet, ook niet met je nieuwe commit, die van de widevine module gebruik maakt, dus DRM handling...
Uiteraard gaat het je plugin gebruikers om het kunnen ZIEN van de videos in KODI, maar ik ben op zoek naar een oplossing om de streams te kunnen downloaden in een video file (voor het nageslacht zeg maar... haha) Uiteraard kan dit met screen capture software (daar kun je in principe altijd alles mee capturen, maar ik doe het liever direct vanaf de bron, zoals tot enkele dagen geleden waarbij de progressive files zelfs downloadable waren. Maar ook de adaptive streams via bijv. FFMpeg.
@matrixview ... Probeer het eens met de Commandline cliënt van VLC.
https://wiki.videolan.org/Documentation:Streaming_HowTo/Receive_and_Save_a_Stream/
@MatrixView dat is niet de bedoeling van deze addon, zal het ook nooit worden. De NPO heeft alle video's nog van t/m 2009. dus denk dat ze alles van nu ook wel tot in de eeuwigheid zullen bewaren. Data opslag kost niks meer tegenwoordig @RonaldNN dan kan alleen met oude video's zonder DRM.
Hier kan je nieuwe video's weer kijken, alleen "hele" oude niet (2017 en ervoor). Je krijg in de logging dan een url van de video, welke dan wel werkt in VLC. (oude files hebben geen DRM)
https://github.com/Opvolger/plugin.video.uzg/releases/tag/3.2.0
Ja hij doet het hier weer, bedankt Bas.
Hier doet ie 't ook weer ;-)). Dank je wel... Wel overigens met her en der wat glitches, net als bij live streaming van de NPO (plugin.video.nederland24)
Op mijn RPi (OSMC) ook werkend. Net weer fijn klokhuis kunnen kijken. Mèt ondertiteling, terwijl dat uit staat. Dat wel. 😋
Bas, fijne gozer, dank je wel!!!
Meteen de plugin maar geïnstalleerd met een git clone en een cronjob die elke nacht een git pull doet.
Hij doet het weer!! Geweldig. Ook op m'n Odroid C2. Ik had even zenuwen toen ie die widevine CDN ging downloaden in een ChromeOS image. Zoveel ruimte heeft dat ding niet. Maar het ging dus goed.
Yep, hier werkt ook alles weer! Op ubuntu 16.04. Bedankt!!
Ik krijg het nog steeds niet werkend, ook niet met v3.2.0. Ik gebruik OSMC met Kodi 17.6 op RPI 2 en krijg het volgende in de log als ik een nieuwe video probeer af te spelen:
`09:05:24.653 T:1657111296 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
Is Widevine nu wel of niet vereist voor alle NPO Uitzendinggemist video's?
EDIT: Nevermind, zie het antwoord hier staan: https://github.com/Opvolger/plugin.video.uzg/issues/20#issuecomment-468293100 Thanks voor al het werk, @Opvolger! Wel bizar dat NPO content die met publieksgeld gemaakt is achter DRM hangt!
Met Kodi 17.6 werkt het ook niet. je moet Kodi 18 gebruiken. OSMC is er nog niet met Kodi 18, of je moet een beta pakken zoals ik heb gedaan. Ze zijn er hard mee aan de slag. Tot op heden nog geen problemen ervaren. Dit is wat ik heb gedaan: https://discourse.osmc.tv/t/testing-kodi-18-leia-builds-for-raspberry-pi/20631
Ik vind OSMC toch echt te traag met updates de laatste tijd. LibreElec is veel sneller met het volgen van Kodi. Zou die aanraden.
Hoe is jouw ervaring met de HDMI ondersteuning van openelec? Ik kan me herinneren dat de signalen van de afstandsbediening van de TV niet door openelec worden opgepikt. Met OSMC heb ik daar geen gedonder mee.
De discussie gaat niet meer om de addon, dus ik sluit de handel.
It seems no videos will been streamed. I use: LibreELEC, Krypton 17.6 and plugin.video.uzg-3.1.0