Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

plugins.pluto: rewrite plugin #5910

Merged
merged 1 commit into from Apr 2, 2024

Conversation

bastimeyer
Copy link
Member

@bastimeyer bastimeyer commented Mar 29, 2024

Fixes #5906
Fixes #5475
Fixes #5752

As explained in #5906, old input URLs seem dead and unsupported. There's a way to implement a fallback mechanic for old VOD URLs, but I don't think this is necessary, because their whole site now uses URLs with stream/VOD IDs instead of channel/VOD-names.

The site also uses DASH streams for VODs, but that's because of the drmCapabilities=widevine:L3 query string parameter which gets set. Without it, only HLS streams without DRM are returned, which is what we want anyway. No idea though if that's going to change at some point.

The following stream selection is limited to what they return when using a German IP address. All streams are working fine, namely live channels, shows/series and movies. I haven't tested using a Proxy/VPN.

$ ./script/test-plugin-urls.py pluto
:: Finding streams for URL: https://pluto.tv/en/live-tv/61409f8d6feb30000766b675
:: Found streams: 570k, 1000k, 1500k, 2100k, 3100k, worst, best
:: Finding streams for URL: https://pluto.tv/en/on-demand/movies/600545d1813b2d001b686fa9
:: Found streams: 570k, 1000k, 1500k, 2100k, 3100k, worst, best
:: Finding streams for URL: https://pluto.tv/en/on-demand/series/5e00cd538e67b0dcb2cf3bcd/season/1/episode/60dee91cfc802600134b886d
:: Found streams: 570k, 1000k, 1500k, 2100k, 3100k, worst, best

@bastimeyer bastimeyer added the plugin issue A Plugin does not work correctly label Mar 29, 2024
@bastimeyer
Copy link
Member Author

@DeltaEpsilon19498
Copy link

DeltaEpsilon19498 commented Apr 2, 2024

I have installed the pull request from the pull request's branch via pip, as outlined in the link you posted.

So far, I have tested both the star trek channel (https://pluto.tv/en/live-tv/5efbd39f8c4ce900075d7698) and the godzilla channel (https://pluto.tv/en/live-tv/6452c8cee1979c0008608e27), the two sample channels. Both work. Old input URLs do not work, but the new ones work, so there is no need for the old URLs anymore.

I tried the star trek channel using both vlc and mpv media players. Both work well and similarly with either player. One thing to note is that ad filtering does not just work intermittently, as in #5752; ad filtering is completely disabled now, and we get all the advertisements. It reminds me of when I first learned of streamlink and was experimenting with using .m3u8 links from pluto tv (which I got from developer console or ublock origin) instead of using the pluto plugin itself. When I used the .m3u8 links, they also worked, but they also gave me all the advertisements. The current functioning of the plugin feels similar to that time.

As for the godzilla channel, earlier in the day the channel was exhibiting different behavior. If I used mpv, if I tuned in during the show, an ad break would freeze the screen permanently, although audio would continue for both the advertisements and the subsequent resumption of the show. If I used vlc, the ad break would be skipped as a "stream discontinuity" if I started watching during the show. If I started watching during an ad break, the ad break would play, and the show would not play due to the stream discontinuity. I guess the workaround here is to use vlc and tune in during the main programming instead of during the ad break.

Later in the day, however, when showing a different show, the godzilla channel's behavior functioned as the star trek channel had behaved. So it may be specific to either what type of program is being shown or what type of ads are being shown at the time.

I would need to test other channels to discover other channel-specific behavior. Do you want any specific logs, and if you do, do you want them on the debug level or the all level? And do you want certain options tested in the config file vs other options?

@DeltaEpsilon19498
Copy link

DeltaEpsilon19498 commented Apr 2, 2024

Here is some output for Pluto tv's version of bloomberg, at https://pluto.tv/en/live-tv/54ff7ba69222cb1c2624c584 . It has that weird vlc issue where if you start watching during the actual show, the stream will filter out the advertisements as a "stream discontinuity." But if you start watching during an ad break, the stream will filter out the actual show, not the ads. But I guess that is more of a #5752 situation. I guess that in regards to #5475 and #5906, it is more important that the website link works and a stream plays.

https://gist.github.com/DeltaEpsilon19498/1321723f8ce9df9bd85d4cf7c291e8e3 for when you start vlc during the actual show on bloomberg channel.

https://gist.github.com/DeltaEpsilon19498/ab0aea0428f128fff99aaf1c55efb157 for when you start vlc during a commercial break for bloomberg channel.

@bastimeyer bastimeyer merged commit 20247d4 into streamlink:master Apr 2, 2024
22 checks passed
@bastimeyer bastimeyer deleted the plugins/pluto/rewrite branch April 2, 2024 13:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
plugin issue A Plugin does not work correctly
Projects
None yet
2 participants