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

No longer works with ESPN #1083

Closed
hubballoon opened this issue Jul 10, 2017 · 7 comments
Closed

No longer works with ESPN #1083

hubballoon opened this issue Jul 10, 2017 · 7 comments
Labels
plugin issue A Plugin does not work correctly

Comments

@hubballoon
Copy link

As recently as January, Watch ESPN videos were easy to download. They used HLS, and it was just a matter of using URL Snooper, filtering URLs by "content-aus", playing the video, getting a link like this: http://content-ause1.uplynk.com/.../g.m3u8?...
and plugging that into streamlink.

However, since January, ESPN seems to have changed things. They now use Brightcove Player instead of Flash, and URL Snooper doesn't turn up any m3u8 files anymore, just useless URLs related to Brightcove metrics and mysterious ESPN stuff.

Does anyone know how to streamline to download from Watch ESPN now? An example video is http://www.espn.com/watch/player?id=3115768. Using URL Snooper on it, I only get useless non-m3u8 URLs like this:

http://w88.espn.com/b/ss/wdgesp360,wdgespge/1/JS-1.6.1/s01430373614406?AQB=1&ndh=1&pf=1&t=9%2F6%2F2017%202%3A16%3A53%200%20240&mid=41565340881529653452606990205430319742&aid=2CAE8E0985079FB3-40000104C0005DEC&aamlh=7&ce=ISO-8859-1&ns=espn&cdp=2&pageName=watchespn%3Aplayer&g=http%3A%2F%2Fwww.espn.com%2Fwatch%2Fplayer%3Fid%3D3115768&cc=USD&ch=watchespn%3Aweb&server=www.espn.com&events=event3&aamb=NRX38WO0n5BH8Th-nqAG_A&c1=watchespn&h1=watchespn%3Aplayer&c2=D%3DSWID&c4=index&c5=watchespn%3Aplayer&c6=Repeat&v7=unknown%3Aunknown%3Aanonymous%3Aanonymous%3Apremium-no&v9=en&c11=anonymous%3Apremium-no&v11=index%3Awat

http://metrics.brightcove.com/v2/tracker?domain=videocloud&platform=video-js&session=f1e54d09a0f1d5e82c82919c&account=3948005062001&destination=http%3A%2F%2Fwww.espn.com%2Fwatch%2Fplayer%3Fid%3D3115533&platform_version=5.22.2&player=players.brightcove.com%2F3948005062001%2Fr1gELdsnlb_default&player_name=Prerelease%201.8.0%20flashls&source=&event=player_init&time=1499579739127

@gravyboat
Copy link
Member

If they've started using brightcove that basically means that it's now locked down via DRM (https://www.brightcove.com/en/online-video-platform/content-protection-encryption-drm). Unfortunately breaking DRM is something we're not willing to spend development time on and we talked about similar DRM related issues over here: #354. I don't have a cable subscription so I can't check the actual video source content to confirm with 100% certainty that this is the case, but based on what you've provided there it's definitely obfuscated in some way. I'll leave this open for another day in case anyone else wants to chime in or has ideas, but if not we'll have to discuss pulling the ESPN plugin.

@gravyboat gravyboat added the plugin issue A Plugin does not work correctly label Jul 11, 2017
@hubballoon
Copy link
Author

hubballoon commented Jul 11, 2017

I took a look at some more of the URLs that URL Streamer gets when watching the ESPN video I linked to. I think what the Brightcove player is doing mostly is just obfuscating the underlying m3u8 URL. I noticed that in some URLs that were detected, there is a rendition_url field that contains another URL, of the same format as the uplynk.com URL I mentioned at the top of my first post. A working, non-obfuscated link, of the kind ESPN used back in January, would have the form http://content-ause1.uplynk.com/.../g.m3u8?..., or, to be exact, something more like this:

http://content-ause1.uplynk.com/5d73982b32574ae684e76b743c53487e/g.m3u8?rn=944407399&linearv=4&ad.csid=watchespn:desktop:e3ads&ad.ulbd=1&eid=a19710454&ct=e&ad.kv=_fw_ae,5525ff59adcaac313923ab89d0a618c5,_fw_euid,9A3F2096-FF6D-4E1E-AC94-160011F75FAF&exp=1491360967&ptid=ESPN3_Events_VDMS&tc=1&oid=d09b16c953aa40c98dd8c513526aca5a&ad=e3ads&ad.caid=a19710454&euid=ESPN3_VDMS&sig=b9520e4b760404f760f8246fb694a4dce3493a28a2f1fa8cce1f12d2291da958&pbs=dbf3705aadd14721867c20b17b13e490

Note that getting this entire URL, rather than just the part up to the .m3u8, was essential for streamlink to be able to download it. But, this was before the Brightcove player was introduced.

Anyway, I note that with the new player ESPN is using, URL Snooper gets fragments of a similar type of URL, but not the entire URL. See the rendition_url sections in these URLs that the packet capture picked up:

http://metrics.brightcove.com/v2/tracker?domain=videocloud&platform=video-js&session=c2ab8022b3a8e718b96337d&account=3948005062001&destination=http%3A%2F%2Fwww.espn.com%2Fwatch%2Fplayer%3Fid%3D3115768&platform_version=5.22.2&player=players.brightcove.com%2F3948005062001%2Fr1gELdsnlb_default&player_name=Prod%201.8.0%20flashls&source=&time=1499745288087&event=video_engagement&player_height=464&player_width=609&video_duration=7118.3217999996705&video=3115768&video_name=(3)%20Federer%20vs.%20(27)%20M.%20Zverev%20(Gentlemen%27s%20Third%20Round)&rendition_url=https%3A%2F%2Fcontent-ausc3.uplynk.com%2Fb6df5b5de2c143058e70f86

http://23.21.72.173/v2/tracker?domain=videocloud&platform=video-js&session=c2ab8022b3a8e718b96337d&account=3948005062001&destination=http%3A%2F%2Fwww.espn.com%2Fwatch%2Fplayer%3Fid%3D3115768&platform_version=5.22.2&player=players.brightcove.com%2F3948005062001%2Fr1gELdsnlb_default&player_name=Prod%201.8.0%20flashls&source=&time=1499745378111&event=video_engagement&player_height=464&player_width=609&video_duration=7118.3217999996705&video=3115768&video_name=(3)%20Federer%20vs.%20(27)%20M.%20Zverev%20(Gentlemen%27s%20Third%20Round)&rendition_url=https%3A%2F%2Fcontent-ausc3.uplynk.com%2Fb6df5b5de2c143058e70f86

In both these cases, the fragment of a content-ausc3.uplynk.com URL is shown under rendition_url. And in another case, even less of the same URL is shown:

http://metrics.brightcove.com/v2/tracker?domain=videocloud&platform=video-js&session=c2ab8022b3a8e718b96337d&account=3948005062001&destination=http%3A%2F%2Fwww.espn.com%2Fwatch%2Fplayer%3Fid%3D3115768&platform_version=5.22.2&player=players.brightcove.com%2F3948005062001%2Fr1gELdsnlb_default&player_name=Prod%201.8.0%20flashls&source=&time=1499745408120&usage=document-hidden&event=video_engagement&player_height=464&player_width=609&video_duration=7118.3217999996705&video=3115768&video_name=(3)%20Federer%20vs.%20(27)%20M.%20Zverev%20(Gentlemen%27s%20Third%20Round)&rendition_url=https%3A%2F%2Fcontent-ausc3.uplynk.com%2Fb

I wonder if there's a way to get access to the full uplynk.com URL that the player is obfuscating.

@beardypig
Copy link
Member

Is there even an ESPN plugin, seems like we don't support ESPN :) I think we have discussed supporting sites that use cable provider logins and decided against it because of the amount of maintenance work required to continue support.

@hubballoon without a cable login it's hard to say if it's still possible to grab the streams.

@gravyboat
Copy link
Member

@beardypig You're right. I forgot people were using a work around to pull the free streams from ESPN previously and there wasn't a dedicated plugin. Anything that requires a cable subscription login has pretty much been a no go from the issues I can remember.

@rcached
Copy link

rcached commented Jul 11, 2017

@hubballoon I confess I am a complete and utter n00b, but maybe this suggestion will help?

Try a different sniffer/analyzer.

URL Snooper is usually pretty good at URL detection, but it does have some deficiencies and quirks. A good example are some Uplynk URLs from sources like ABC. URL Snooper v2.42.01 doesn't correctly parse & so the resultant URL won't work with Streamlink/Livestreamer/etc.

For your test media of:
http://www.espn.com/watch/player?id=3115768

I just used ABP Blockable Items in FF. Got the same/similar URL from HttpFox or the Network tab in Chrome. Didn't even need to break out Wireshark.

https://content.uplynk.com/event/ext/d09b16c953aa40c98dd8c513526aca5a/a110065615.m3u8?rn=927026293&linearv=4&ad.csid=watchespn:web:e3ads&ad.ulbd=1&eid=a110065615&ct=e&ad.kv=_fw_ae,dd55c99281c6667544470a832b1c9065,_fw_euid,285EF5A9-F29C-4477-A1D8-521741663F28&exp=1499806699&ptid=ESPN3_Events_VDMS&tc=1&oid=removed&ad=e3ads&ad.caid=a110065615&euid=ESPN3_VDMS&sig=removed

URL Snooper only found the mess you alluded to in the OP.

@back-to
Copy link
Collaborator

back-to commented Jan 3, 2018

looks like this issue is outdated,

http://www.espn.com/watch
redirects to
https://www.espnplayer.com

which is a neulion domain


it might work with #1406 but a domain update is required

https://github.com/back-to/streamlink/blob/15ef73fc4626a4d60f05003a7d4d268d5362ce50/src/streamlink/plugins/neulion.py#L27-L31

ufc\.tv
# to
ufc\.tv|espnplayer\.com

if you got a epsn login, you could test it.

@hubballoon @rcached

@back-to
Copy link
Collaborator

back-to commented Jan 15, 2018

if someone still wants the new layout, there might be an easy solution

see above #1083 (comment) | #1406

if you tested it, just give a feedback here.


Closing, the original issue is outdated and
if someone wants the new layout, well this issue is not locked just closed 🦅

@back-to back-to closed this as completed Jan 15, 2018
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
Development

No branches or pull requests

5 participants