plugin for npo.nl stoppped working.
See original GitHub issueChecklist
- This is a bug report.
- This is a plugin request.
- This is a feature request.
- I used the search function to find already opened/closed issues or pull requests.
Description
Trying to play any url at npo.nl/live results in an error.
Expected / Actual behavior
expecting a stream, error is:
[cli][info] Found matching plugin npo for URL npo.nl/live/npo-1
error: Unable to open URL: http://ida.omroep.nl/npoplayer/i.js?s=http%3A//npo.nl/live/npo-1 (410 Client Error: Gone for url: http://ida.omroep.nl/npoplayer/i.js?s=http%3A//npo.nl/live/npo-1)
Reproduction steps / Stream URLs to test
streamlink -l debug npo.nl/live/npo-1
Environment details (operating system, python version, etc.)
Multiple systems, all using streamlink 0.3.2, Python 2.7.12
Issue Analytics
- State:
- Created 7 years ago
- Comments:11 (5 by maintainers)
Top Results From Across the Web
NPO Channels not working · Issue #1547 · retrospect-addon ...
Just use the InputStream Adaptive Helper add-on (Installed with Retrospect) to force update of WideVine. The reboot your device.
Read more >Dutch NPO streams as channels in Kodi? - Tvheadend
I like to have the free dutch NPO [123] streams be handled as "normal" channels (they should ... @Bengt: is not working for...
Read more >Troubleshooting | Rieter.NET - Retrospect
If things are really not working and you want to start from scratch please follow these steps: Delete the /addons/plugin.video.retrospect/ folder from your ......
Read more >How to Fix Common Podcast RSS Feed Problems
It seems the problem is you're using PodPress (very old and not well maintained) _and_ redirecting to FeedBurner and possibly using FeedBurner's broken ......
Read more >Plugins - FlexGet
Note: This plugin does not currently work, look into imdb_watchlist ... npo_watchlist, Create entries for the shows and episodes in your npo.nl account ......
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Cool. tvcatchup.py is a pretty basic plugin.
To make a
Plugin
you have to subclassPlugin
and set the module level variable__plugin__
to that class (__plugin__ = TVCatchup
). Then you have to implement the two required methods,can_handle_url
(a classmethod) and_get_streams
.can_handle_url
is super simple, you just returnTrue
/False
if this plugin can handle the supplied URL. Normally this is done wit a regex, (r"http://(?:www\.)?tvcatchup.com/watch/\w+"
)._get_streams
is also pretty simple, you have either return alist
,iterable
, ordict
containing the streams. Thedict
must have the quality name (eg.540p
) as the key and an instance ofStream
as the value, likewise with thelist
/iterable
it must be atuple
of(quality, stream)
. There are a number of differentStream
classes in the stream module. The most common one now is probablyHLSStream
(as in tvcatchup). There is a special globalhttp
which is arequests.Session
instance (with some extra methods for json/xml), which has been set up with the users preferences, you should use this to do all http requests. You can see in thetvcatchup
plugin, the page (self.url
) is requested and anm3u8
URL is searched for, if it is found then it is parsed withHLSStream.parse_variant_playlist
if the URL contains_adp
.HLSStream.parse_variant_playlist
returns a properly formatteddict
with all the streams. In the other case (_adp
not in the URL) it assumes it’s576p
and returns adict
with oneHLSStream
instance.If you fire up a python shell and do
you will see what the plugin returns 😃 In this case the quality keys are in bitrate (
550k
, etc). Streamlink sorts the qualities returned by thePlugin
(seestream_weight
to see how the weights are compared).To write your own plugin you need to work out how the site works, and how it gets it stream urls (m3u8/f4m/etc.). Then it’s just a case of getting your
Plugin
to replicate it 😃I have created a PR with an updated version of the plugin, would be good if you could test it out @sophof 😃