[REL] NPO (Nederlandse Publieke Omroep)

NPO is en plugin om video’s van www.npo.nl te kunnen bekijken binnen Plex. Op dit moment biedt deze plugin toegang tot Populaire afleveringen, Meest bekeken afleveringen, Gemist (tot 10 dagen uitzendingen terugkijken) en een A-Z overzicht van programma’s waar afleveringen voor beschikbaar zijn.

Deze Plex plugin is te installeren via de Plugin Directory.

Bekende problemen

  • Client en server moeten naar buiten gezien hetzelfde ip adres hebben. NPO maakt gebruik van hashes in de video URLs, waarin ook het ip adres verwerkt zit. Een manier om dit probleem op te lossen is om Direct Play/Direct Stream uit te schakelen en de server te laten transcoden.

Broncode

Plugin broncode op Github: https://github.com/plexinc-plugins/NPO.bundle

Updates

10-12-2016

  • Sorteer video’s gebaseerd op broadcast timestamp.

05-01-2017

  • Switch van HTTP Live Stream formaat naar progressive m4v bestanden. Hopelijk werkt dit beter, met name met het door- en terugspoelen in uitzendingen.

03-03-2017

  • Video playback fix

10-04-2018

  • Optie om een transcode te forceren toegevoegd om om een Android specifiek audio probleem heen te werken (info hier)

Geweldig werk, sander1! Mijn probleem is dat ik alleen de uitzendingen niet kan zien. Wat ik ook aanklik, steeds hetzelfde bericht: ‘Sorry, we couldn’t load the requested content.’ Is er iets dat ik kan doen? Ik woon in de VS en gebruik een DNS server. Bedankt!

Ik zit ook in de VS en bij mij werkt ie prima. Waar kijk je op dat je de uitzending niet kunt zien? Een browser of een of andere device?

Mooi gedaan Sander. Ik was zelf al aan het klungelen geslagen en had de originele bundle hier en daar weer aan het werk gekregen, maar dit ziet er veel gelikter uit. Het enige wat ik extra had is de zoek functie op de Roku, maar voorlopig kan ik hier heel goed mee uit de voeten. Bedankt!

@Ivanhelden: Ik heb de plugin op mijn Mac (Plex server) en tracht de uitzending te bekijken op Plex voor Roku. Heel even had ik een ‘connectie’ voor de uitzendingen van afgelopen vrijdag, maar dat was kortstondig. Ik heb het verder nog niet geprobeerd met de Mac of Android app. Misschien werkt dat wel?
P.S. Ik gebruik een Roku tv. Misschien is dat het euvel wel…

Ik gebruik ook Roku (Roku 2 en 3). Bij mij werken devices, browsers etc correct. Heb je de logs op de server al gecheckt voor errors? Gebruik je de Plex of the Plex Classic plugin op de Roku? Probeer ook even verschillende browsers (Safari, Firefox, Chrome) op je Mac.

Bedankt voor je reactie. Ik ga er vanavond even mee aan de slag. Overigens gebruik ik Plex op mijn Roku (geen classic). Dat zal het probleem dus niet zijn. Misschien is het wel mijn DNS proxy. Gebruik jij een proxy, of is dat met deze plugin niet nodig?

Ik gebruik geen proxy, nog niet echt behoefte aan gehad anders dan tijdens de olympische spelen :wink:

Werkt niet op mijn Plex Home Theater op de Mac, werkt niet op de Plex Media server en niet op mijn Roku tv. ‘This chnnel is not responding’ is het terugkerende bericht. Jammer. Misschien dat de volgende update wel werkt. In ieder geval bedankt voor je hulp!

@Griek said:
Werkt niet op mijn Plex Home Theater op de Mac

Deze client had voorheen ook al problemen met video’s van Uitzending Gemist. De opvolger (Plex Media Player) kan de video’s wel afspelen voor zover ik heb kunnen testen.

@Griek said:
‘This chnnel is not responding’ is het terugkerende bericht.

Wellicht toch een geoblock issue. Hints waarom het niet zou werken zijn wellicht te vinden in de log com.plexapp.plugins.npo.log of com.plexapp.system.log.

@Griek said:
Ik woon in de VS en gebruik een DNS server. Bedankt!

Let op dat zowel je server als je client(s) gebruik moeten maken van deze SmartDNS (of VPN). De streams worden ge-Direct Played op de client, dus alleen de server achter een SmartDNS of VPN werkt niet. SmartDNS of VPN op je router is de beste oplossing, omdat dan alle apparaten in je huishouden er automatisch gebruik van maken.

Ik denk niet dat dit helemaal waar is. Op het moment heb ik mijn SmartDNS ‘uitzet’ op mijn computer, kan ik geen programma’s van Plex BBC iPlayer meer bekijken.
Als ik de SmartDNS weer aan zet (dus alleen op mjn computer) werkt de BBC weer.
Op dit moment heb ik mijn Router en computer ingesteld op Google’s DNS servers en kan ik zowaar de NPO programma’s openen. Het probleem nu is dat het iedere 10 seconden buffert. Kan ik hier iets aan doen?

Mijn vindingen: NPO werkt vreemd genoeg alleen ZONDER een SmartDNS (ook al is deze gericht op het bekijken van NL tv) maar buffert wel iedere 10 seonden. Zodra ik de SmartDNS weer aan zet, houdt het NPO-verhaal op, maar kan ik wel weer BBC iPlayer programma’s bekijken! Vreemd, toch?

Werkte t\m gisteren als een speer - vandaag niet meer - blijf melding krijgen om de Plex App en Server opnieuw op te starten. Plugin weg gegooid en opnieuw geladen, helaas.

Hier hetzelfde. Programmas die gisteren nog speelden, doen het vandaag niet meer… :frowning:

Ik dacht even dat het allemaal aan mij lag! (-:

@GerbenUSA said:
Werkte t\m gisteren als een speer - vandaag niet meer - blijf melding krijgen om de Plex App en Server opnieuw op te starten. Plugin weg gegooid en opnieuw geladen, helaas.

Is er iets te vinden in de log files com.plexapp.plugins.npo.log of com.plexapp.system.log? Ik kan er vrij weinig over zeggen zonder logs.

Zijn er al mensen die deze plugin hebben gebruikt en die binnen Nederland wonen? Bij mijzelf werkt alles nog prima en ik vind het een beetje typisch dat alleen mensen van buiten NL posten over problemen.

Gisteren werkte het weer - weet niet waarom. Toevallig wel van provider veranderd met een andere DNS. Weet niet of het daar aan ligt, maar ook smartdns gebruikt toen het niet werkte en dat deed het ook niet.

@sander1 Sorry maar had mijn logs weggegooid - clean VM. Zal ze opsturen wanneer dit weer gebeurd.

@sander1:
Het was alleen 7 dec dat het even niet werkte. Ik probeerde het de volgende dag en toen werkte het weer gewoon. Ik heb zojuist de logs bekeken, hieronder heb ik hetgeen ongewoon was gepost. Ik nam aan dat het een probleem was bij NPO. Ik vermoed dat mensen in het buitenland meer gebruik van deze plugin maken dan binnen Nederland. Vandaar meer feedback vanuit het buitenland.

Logs (zelfde melding in com.plexapp.system.log en com.plexapp.plugins.npo.log):

2016-12-07 20:55:51,979 (7f8086ffd700) :  DEBUG (networking:166) - Requesting 'http://ida.omroep.nl/npoplayer/i.js'
2016-12-07 20:55:52,298 (7f8086ffd700) :  DEBUG (networking:166) - Requesting 'http://ida.omroep.nl/odi/?prid=POW_02990943&puboptions=adaptive&adaptive=yes&part=1&token=5c7p7iuenstnimjc3ifkldo9f0'
2016-12-07 20:55:52,624 (7f8086ffd700) :  DEBUG (networking:166) - Requesting 'http://odi.omroep.nl/video/ida/adaptive/5548fea1e6d75b533bb4540380135336/5848d9c8/POW_02990943/1?extension=m3u8&type=json'
2016-12-07 20:55:52,996 (7f8086ffd700) :  DEBUG (networking:166) - Requesting 'http://adaptive-e99c1.npostreaming.nl/urishieldv2/l27m6160a5ca390b53a2005848d9c8000000.d099dac9ce52997df5c5d03b6aede476/p/1d/10/10/16/POW_02990943/POW_02990943.ism/POW_02990943.m3u8'
2016-12-07 20:55:53,311 (7f8086ffd700) :  ERROR (networking:219) - Error opening URL 'http://adaptive-e99c1.npostreaming.nl/urishieldv2/l27m6160a5ca390b53a2005848d9c8000000.d099dac9ce52997df5c5d03b6aede476/p/1d/10/10/16/POW_02990943/POW_02990943.ism/POW_02990943.m3u8'
2016-12-07 20:55:53,312 (7f8086ffd700) :  CRITICAL (sandbox:303) - Exception when calling function 'PlayVideo' (most recent call last):
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-1bef33a/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/code/sandbox.py", line 294, in call_named_function
    result = f(*args, **kwargs)
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-1bef33a/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/runtime.py", line 85, in __call__
    return self._f(*args, **kwargs)
  File "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins/Services.bundle/Contents/Service Sets/com.plexapp.plugins.npo/URL/NPO/ServiceCode.pys", line 129, in PlayVideo
    m3u8_playlist = HTTP.Request(m3u8_url).content
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-1bef33a/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 265, in content
    return self.__str__()
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-1bef33a/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 243, in __str__
    self.load()
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-1bef33a/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 181, in load
    f = self._opener.open(req, timeout=self._timeout)
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-1bef33a/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 444, in open
    response = meth(req, response)
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-1bef33a/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 557, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-1bef33a/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 482, in error
    return self._call_chain(*args)
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-1bef33a/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 416, in _call_chain
    result = func(*args)
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-1bef33a/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 565, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 404: Not Found

2016-12-07 20:55:53,313 (7f8086ffd700) :  CRITICAL (runtime:889) - Exception (most recent call last):
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-1bef33a/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/runtime.py", line 843, in handle_request
    result = f(**d)
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-1bef33a/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/handlers/services.py", line 150, in call_service_function
    result = self._core.services._call_named_function_in_service(f_name, service, f_args, f_kwargs)
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-1bef33a/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/services.py", line 589, in _call_named_function_in_service
    return self._call_named_function_in_sandbox(service.sandbox, fname, None, f_args, f_kwargs, allow_deferred, raise_exceptions, f_optional)
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-1bef33a/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/services.py", line 573, in _call_named_function_in_sandbox
    result = sandbox.call_named_function(fname, allow_deferred=allow_deferred, raise_exceptions=raise_exceptions, args=f_args, kwargs=f_kwargs, mod_name=mod_name, optional_kwargs=f_optional)
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-1bef33a/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/code/sandbox.py", line 294, in call_named_function
    result = f(*args, **kwargs)
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-1bef33a/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/runtime.py", line 85, in __call__
    return self._f(*args, **kwargs)
  File "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins/Services.bundle/Contents/Service Sets/com.plexapp.plugins.npo/URL/NPO/ServiceCode.pys", line 129, in PlayVideo
    m3u8_playlist = HTTP.Request(m3u8_url).content
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-1bef33a/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 265, in content
    return self.__str__()
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-1bef33a/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 243, in __str__
    self.load()
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-1bef33a/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/components/networking.py", line 181, in load
    f = self._opener.open(req, timeout=self._timeout)
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-1bef33a/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 444, in open
    response = meth(req, response)
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-1bef33a/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 557, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-1bef33a/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 482, in error
    return self._call_chain(*args)
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-1bef33a/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 416, in _call_chain
    result = func(*args)
  File "/usr/lib/plexmediaserver/Resources/Plug-ins-1bef33a/Framework.bundle/Contents/Resources/Platforms/Shared/Libraries/urllib2_new.py", line 565, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 404: Not Found

De tijden in de logs zijn MST (Mountain Standard Time, UTC -7)
Ik hoop dat dit helpt.