Open ghost opened 1 year ago
As you haven't shown a verbose log, it's difficult to diagnose: clearly you aren't running the release build or a new git version, as neither recognise the CBS URL.
However the same result occurs with yt-dlp.
As you haven't shown a verbose log, it's difficult to diagnose: clearly you aren't running the release build or a new git version, as neither recognise the CBS URL.
I did show a verbose log, what are you talking about? I ran with --verbose
as instructed. Also if you look closely, you'll notice I didn't provide a URL, I provided the cbs:ID
Quite so, late at night in the UK, but you did omit the backtrace, so that's my weak excuse.
Using the cbs:ID
, all three versions of interest (release yt-dl and yt-dlp, yt-dl git master) fail in the same way, as in the posted logs.
Someone (OP perhaps?) will have to do some research, eg on how this works in region in a browser, to fix this.
Somewhat surprisingly no yt-dlp user has reported this. Could it be an artefact of the access network, eg if not in region or if using a blocked VPN?
the same video at paramount + https://www.paramountplus.com/shows/video/YxlqOUdP1zZaIs7FGXCaS1dJi7gGzxG_/ works with yt-dlp & ytdl-patched but does not work with youtube-dl.
and this test link https://www.paramountplus.com/movies/video/wQH9yE_y_Dt4ekDYm3yelhhY2KXvOra_/ says it's DRM protected.
Looks like this is all blocked (403) from UK.
does it not work with a VPN ??
Possibly, but ATM I'll leave this to people able to access it directly. The question is whether OP's failure with cbs:... is repeatable given https://github.com/ytdl-org/youtube-dl/issues/31864#issuecomment-1473757202.
We now have ParamountPlus.com/gb but if it's anything like the offerings from the same group it'll be DRMed. Difficult to tell as even their device help page is broken,
Somewhat surprisingly no yt-dlp user has reported this. Could it be an artefact of the access network, eg if not in region or if using a blocked VPN?
If can.cbs.com
means Canada, then it would make sense to try Canada VPN. I retried the PHP URL with United States and Canada, still failing.
and this test link https://www.paramountplus.com/movies/video/wQH9yE_y_Dt4ekDYm3yelhhY2KXvOra_/ says it's DRM protected.
Several videos offer both DRM and non DRM streams. For example, the one you've commented on, both DASH_CENC
(DRM) and StreamPack
(not DRM) are offered. However in addition to the PHP error already discussed, another one has recently occured. If you make a StreamPack
request, such as:
curl -v link.theplatform.com/s/dJ5BDC/media/guid/2198311517/wQH9yE_y_Dt4ekDYm3yelhhY2KXvOra_
You get an HLS URL, as expected:
but if you actually try to request the HLS, you get:
HTTP/1.0 400 Bad Request
so it appears that all StreamPack
options are dead, either temporarily or permanent, with the cause being an accident or a purposeful action by CBS. So until something changes any StreamPack
options are essentially DRM.
the same video at paramount + https://www.paramountplus.com/shows/video/YxlqOUdP1zZaIs7FGXCaS1dJi7gGzxG_/ works with yt-dlp & ytdl-patched but does not work with youtube-dl.
this is a Downloadable
type, which might be the only non DRM type still available. Note that previously an HLS_CLEAR
type was available as well, but I think those have been dropped, not sure.
Someone (OP perhaps?) will have to do some research, eg on how this works in region in a browser, to fix this.
I plan to work on this some more this weekend. I want to see what a web client is doing on the few non DRM options left, and also check Android client.
Does this endpoint no longer work can.cbs.com/thunder/player/videoPlayerService.php ? I get status code 200 but no output...
From the issue text:
looks like the issue is that these type URLs are now returning empty responses:
So, yes.
How to get all the pids for all asset types now for example DASH_CENC , PRECON or HLS ? link.theplatform.com needs pid to get m3u or mpd manifest...
Won't a trace of playing a test video in a desktop browser do?
@dirkf regarding web clients, if you dont use Safari, or a Safari User-Agent, or another Apple specific browser (I dont know what those would be), then likely you are just going to be served DASH, either Widevine or clear. So using an Apple client, either desktop or mobile is an important point here, for any who might care about HLS formats. I didn't make time for this over the last couple of days (busy with other stuff), but I will try to look at it this week, unless someone beats me to it.
For me the original XML parse error is a somewhat separate issue from whether they are DRM'd that cropped up this week after working fine --- I had been using yt-dlp to download the subtitles and thumbnails without the content via the --skip-download parameter. Started failking for this series Tuesday for me.
Examples:
"https://www.cbs.com/shows/video/yJDiL4UCGqhPMzYeI7_uGETDWFuGRNui/" "https://www.cbs.com/shows/video/TTobd7NjENoNESGeCpmsirueC4HOYDge/" "https://www.cbs.com/shows/video/mjADR3rryehJKHRKqapazoYY0UX_6_F_/"
It's also retroactive with previously working videos apparently now failing, so an unresponsive endpoint seems logical to me.
Hope folks can help figure something out.
For the final Colbert show of those three, I get these interesting JS fragments in the non-JS page seen by yt-dl, after pretty-printing:
The first two look similar, so I guess no Colbert for yt-dl.
No, but as the closed captioning jpeg and thumbnail are correctly published it seems I would have expected yt-dlp to move on from the XML error with --skip-download and grab those. But I'm largely out of my depth here.
take the Halo TV series for instance -https://www.paramountplus.com/shows/halo/ , none of the the season episodes will download, but any of the behind the scenes, special features & clips will download fine.
In the Colbert JSON quoted above:
'playerLocUrl': 'http://can.cbs.com/thunder/player/chrome/canplayer.swf?allowScriptAccess=always&allowFullScreen=true&pid=Z8rFLBAAODE5&partner=cbs_us_free_desktop&autoPlayVid=false&owner=CBS Production Entertainment',
This just gives an opaque binary file with initial bytes CWS
. Apparently it's a compressed SWF which can then be edited with a suitable SWF tool imported from prehistory, or even just a hex editor, but appears to be generic.
OK I did some more research, I did not find any method to enumerate all assetType
values:
https://github.com/4cq2/mech/blob/v1.2.8/paramount/assetType.md
So it seems for now some values are hidden, only available to people who already know they exist. Downloadable
is still a valid value, so some videos are still available without DRM.
Somehow the web and Android app manage to construct a playable URL, regardless of this (possibly requiring WV/FP). How does that happen? What do playable URLs look like?
Somehow the web and Android app manage to construct a playable URL, regardless of this (possibly requiring WV/FP). How does that happen? What do playable URLs look like?
Not really sure what you are asking here. The web client always chooses DRM, even if non DRM is available. In fact, it will prevent you from playing at all if you disable DRM browser plugin. Regarding the Android client, as mentioned in the research document in my previous comment, the Android client only returns DRM options, even if non DRM options are available.
So regarding "playable URLs", it doesn't really matter what methods the official clients use to general playable URLs (at least as far as YouTube-DL/YT-DLP are concerned), as all playable URLs generated by official clients are DRM enabled. Again to be clear, non DRM options are still available, but they are more limited than ever, and it appears no method is currently available to even enumerate what non DRM options might be available. I didn't do any research into the auth
query string key, so its possible that might be the fix. If I had to guess, I would say its the same as the LS_Session
value, but I didn't check that. My previous research document was nearly exhaustive, so I am about mentally checked out on this matter.
Thanks: you answered the question anyway!
Some other platforms have legacy implementations that can't be updated but have to continue playing content: perhaps these limited non-DRM options are provided for such a reason.
one note - currently I think the only non DRM assetTypes
value is Downloadable
. I did find some examples with mediaType
of Full Episode
:
https://paramountplus.com/shows/video/YxlqOUdP1zZaIs7FGXCaS1dJi7gGzxG_
but none with mediaType
of Movie
, so its possible that all Movie
are now DRM only. I am not sure of anything I just said, so if someone can prove me wrong, I will be happy to hear it.
Checklist
Verbose log
using an
assetType
ofDownloadable
(not DRM):https://www.cbs.com/shows/video/YxlqOUdP1zZaIs7FGXCaS1dJi7gGzxG_/
same with
assetType
ofStreamPack
(not DRM):https://paramountplus.com/movies/video/wQH9yE_y_Dt4ekDYm3yelhhY2KXvOra_
Description
looks like the issue is that these type URLs are now returning empty responses:
http://can.cbs.com/thunder/player/videoPlayerService.php?partner=cbs&contentId=wQH9yE_y_Dt4ekDYm3yelhhY2KXvOra_
I believe this started in the last day or two, not sure if temporary or permanent issue.