youtube-dl
youtube-dl copied to clipboard
eVOD https://watch.evod.co.za/ Support
Checklist
- [x] I'm reporting a new site support request
- [x] I've verified that I'm running youtube-dl version 2021.12.17
- [x] I've checked that all provided URLs are alive and playable in a browser
- [x] I've checked that none of provided URLs violate any copyrights
- [x] I've searched the bugtracker for similar site support requests including closed ones
Example URLs
- Single video: https://watch.evod.co.za/player/46674/stream?assetType=episodes&playlist_id=51
- Playlist: https://watch.evod.co.za/79e530ca-f6b4-4bba-a7e8-807f6d7113d2/details/46674?playlist_id=51
Description
eVOD is a online version of a South African TV Channel. It requires an account to be created, but is free of charge.
It's a JS application so there's no easy win. The site script and/or network traffic would have to be analysed to determine if an extractor is possible.
The site script and/or network traffic would have to be analysed
The link in OP doesn't work for me, but this one below does:
https://watch.evod.co.za/player/36728/stream?assetType=movies&playlist_id=8
BTW, I didn't have to log-in for playback to commence... 😜
Basically, they're using the Brightcove framework to deliver their streams; at this time, it appears "in the clear" (i.e. without DRM):
https://beacon.playback.api.brightcove.com/etv/api/assets/36728
("device_type, device_layout are required" if tried on its own)
Their Brightcove account id is: "bc_account_id": "6195169123001"
POST: https://beacon.playback.api.brightcove.com/etv/api/assets/36728/streams/11567
GET: https://beacon.playback.api.brightcove.com/etv/api/assets/36728/streams/11567/related
("device_type, device_layout, layout_id are required" if tried on its own))
GET: https://edge.api.brightcove.com/playback/v1/accounts/6195169123001/videos/6290129032001
(requires request header below:
Accept application/json;pk=BCpkADawqM1IM5wmrZIO6d3tl4Md7LUkg7QegiZZDkWTtHbcugAhH5ArMphQ033ih5XsXS4aYAJxUB53UxkQIIyyaOKPxlnUgGko5H9VPFd238g6NW9bbBW5KF7o_DveKsjI1MyjRGEJEibN
); streams (+subtitles+thumbnails) are then returned in the BODY of the response (prettified):
{
"poster": "https://cf-images.eu-west-1.prod.boltdns.net/v1/static/6195169123001/b0c13c02-270a-4fd0-893b-09ca60025aeb/778e410c-951b-4673-8a60-559055696cb4/3840x2160/match/image.jpg",
"thumbnail": "https://cf-images.eu-west-1.prod.boltdns.net/v1/static/6195169123001/b0c13c02-270a-4fd0-893b-09ca60025aeb/0ae1edef-9104-41ae-bf8a-b955763ebe36/800x450/match/image.jpg",
"poster_sources": [
{
"src": "https://cf-images.eu-west-1.prod.boltdns.net/v1/static/6195169123001/b0c13c02-270a-4fd0-893b-09ca60025aeb/778e410c-951b-4673-8a60-559055696cb4/3840x2160/match/image.jpg"
}
],
"thumbnail_sources": [
{
"src": "https://cf-images.eu-west-1.prod.boltdns.net/v1/static/6195169123001/b0c13c02-270a-4fd0-893b-09ca60025aeb/0ae1edef-9104-41ae-bf8a-b955763ebe36/800x450/match/image.jpg"
}
],
"description": null,
"tags": [
"comedy",
"highschool",
"love",
"raunchy",
"romance",
"seduction",
"teen"
],
"cue_points": [
{
"id": "6309495847001",
"name": "AD 1",
"type": "AD",
"time": 900,
"metadata": null,
"force_stop": false
},
{
"id": "6309495848001",
"name": "AD 2",
"type": "AD",
"time": 1800,
"metadata": null,
"force_stop": false
},
{
"id": "6309495849001",
"name": "AD 3",
"type": "AD",
"time": 2700,
"metadata": null,
"force_stop": false
},
{
"id": "6309495850001",
"name": "AD 4",
"type": "AD",
"time": 3600,
"metadata": null,
"force_stop": false
},
{
"id": "6309495851001",
"name": "AD 5",
"type": "AD",
"time": 4500,
"metadata": null,
"force_stop": false
},
{
"id": "6309495852001",
"name": "AD 6",
"type": "AD",
"time": 5400,
"metadata": null,
"force_stop": false
}
],
"custom_fields": {
"beacon_agerating": "za=18",
"beacon_cast_actor": "Cary Elwes, Dylan McDermont",
"beacon_cast_director": "Tim Garrick",
"beacon_genre": "Comedy",
"beacon_ingest": "Yes",
"beacon_longdescription": "In this racy teen comedy, Rick Stevens (Nat Wolff) is willing to do whatever it takes to try to win the heart of beautiful Nina Pennington (Selena Gomez). Even if this means dealing with a mobster's son, a group of strippers, his best friend's mother, his drug abusing boss, a perverted principal, a priest with a secret, his suicidal mother, and a patron saint who dispenses cryptic advice. No one ever said love was easy.",
"beacon_productionyear": "2013",
"beacon_rights_0_adconfiguration": "d952c254-37fc-45cb-b837-40cbfd370fc9",
"beacon_rights_0_devices": "iOS, Android, web, appletv, androidtv",
"beacon_rights_0_enddate": "2025-11-30",
"beacon_rights_0_locationspermit": "South Africa",
"beacon_rights_0_packagename": "eVOD Free, Daily, eVOD Weekly, eVOD Monthly, eVOD Monthly APP",
"beacon_rights_0_startdate": "2022-02-03",
"beacon_rights_0_type": "SVOD",
"beacon_shortdescription": "18L - In his quest to win the heart of the most beautiful girl in school (Selena Gomez), lovestruck teenager Rick (Nat Wolff) suffers uncomfortable racy experiences and must deal with his bestie's mom, a drug-abusing boss, a taciturn priest and the mob.",
"beacon_video_type": "movie"
},
"account_id": "6195169123001",
"sources": [
{
"codecs": "avc1,mp4a",
"ext_x_version": "4",
"src": "http://manifest.prod.boltdns.net/manifest/v1/hls/v4/clear/6195169123001/b0c13c02-270a-4fd0-893b-09ca60025aeb/10s/master.m3u8?fastly_token=NjNmODY2YzRfMWZlNGY0OTFlNzM5M2YzNGJlZjE4ZTlhOTIzNTM0YzQxMGMwNmFlNWRkOGFjODM1ZjQ3ZGZlZjViYzU3NjM2OQ%3D%3D",
"type": "application/x-mpegURL"
},
{
"codecs": "avc1,mp4a",
"ext_x_version": "4",
"src": "https://manifest.prod.boltdns.net/manifest/v1/hls/v4/clear/6195169123001/b0c13c02-270a-4fd0-893b-09ca60025aeb/10s/master.m3u8?fastly_token=NjNmODY2YzRfMWZlNGY0OTFlNzM5M2YzNGJlZjE4ZTlhOTIzNTM0YzQxMGMwNmFlNWRkOGFjODM1ZjQ3ZGZlZjViYzU3NjM2OQ%3D%3D",
"type": "application/x-mpegURL"
},
{
"codecs": "avc1,mp4a",
"profiles": "urn:mpeg:dash:profile:isoff-live:2011",
"src": "http://manifest.prod.boltdns.net/manifest/v1/dash/live-baseurl/clear/6195169123001/b0c13c02-270a-4fd0-893b-09ca60025aeb/6s/manifest.mpd?fastly_token=NjNmODY2YzRfODViZmMwZWY1Mzc1ZDg0ZjNiMmE2MWQ5MTg3OWFiOTA1NWIxN2E5MjkwNDU0MjA2YWE4Mjc4YmMxNDU4OTFhZg%3D%3D",
"type": "application/dash+xml"
},
{
"codecs": "avc1,mp4a",
"profiles": "urn:mpeg:dash:profile:isoff-live:2011",
"src": "https://manifest.prod.boltdns.net/manifest/v1/dash/live-baseurl/clear/6195169123001/b0c13c02-270a-4fd0-893b-09ca60025aeb/6s/manifest.mpd?fastly_token=NjNmODY2YzRfODViZmMwZWY1Mzc1ZDg0ZjNiMmE2MWQ5MTg3OWFiOTA1NWIxN2E5MjkwNDU0MjA2YWE4Mjc4YmMxNDU4OTFhZg%3D%3D",
"type": "application/dash+xml"
},
{
"avg_bitrate": 2098000,
"codec": "H264",
"container": "MP4",
"duration": 5562432,
"height": 720,
"size": 1462306598,
"src": "http://bc-evod.akamaized.net/media/v1/pmp4/static/clear/6195169123001/b0c13c02-270a-4fd0-893b-09ca60025aeb/ef2afbfa-be9e-49d6-9a8f-03c98cde90f6/main.mp4",
"width": 1280
},
{
"avg_bitrate": 2098000,
"codec": "H264",
"container": "MP4",
"duration": 5562432,
"height": 720,
"size": 1462306598,
"src": "https://bc-evod.akamaized.net/media/v1/pmp4/static/clear/6195169123001/b0c13c02-270a-4fd0-893b-09ca60025aeb/ef2afbfa-be9e-49d6-9a8f-03c98cde90f6/main.mp4",
"width": 1280
}
],
"name": "Behaving Badly",
"reference_id": null,
"long_description": null,
"duration": 5562432,
"economics": "AD_SUPPORTED",
"text_tracks": [
{
"id": null,
"account_id": "6195169123001",
"src": "http://manifest.prod.boltdns.net/thumbnail/v1/6195169123001/b0c13c02-270a-4fd0-893b-09ca60025aeb/f09950ff-7de5-4cc5-b77f-e059d96652c5/thumbnail.webvtt?fastly_token=NjNmODY2YzRfMGUxZWM2ZTA1ZWIzODI2MzY2ZjZjY2EwODA5ZWI5OTk4NDU5MDFlNzdlMGZmMTc2NWRlZWU3ZmQwZjExMDMzYg%3D%3D",
"srclang": null,
"label": "thumbnails",
"kind": "metadata",
"mime_type": "text/webvtt",
"asset_id": null,
"sources": null,
"default": false,
"width": 480,
"height": 270,
"bandwidth": 442
},
{
"id": null,
"account_id": "6195169123001",
"src": "https://manifest.prod.boltdns.net/thumbnail/v1/6195169123001/b0c13c02-270a-4fd0-893b-09ca60025aeb/f09950ff-7de5-4cc5-b77f-e059d96652c5/thumbnail.webvtt?fastly_token=NjNmODY2YzRfMGUxZWM2ZTA1ZWIzODI2MzY2ZjZjY2EwODA5ZWI5OTk4NDU5MDFlNzdlMGZmMTc2NWRlZWU3ZmQwZjExMDMzYg%3D%3D",
"srclang": null,
"label": "thumbnails",
"kind": "metadata",
"mime_type": "text/webvtt",
"asset_id": null,
"sources": null,
"default": false,
"width": 480,
"height": 270,
"bandwidth": 442
}
],
"published_at": "2022-01-05T13:15:29.329Z",
"created_at": "2022-01-05T13:15:29.318Z",
"updated_at": "2022-06-08T07:33:16.753Z",
"offline_enabled": false,
"link": null,
"id": "6290129032001",
"ad_keys": null
}
Standalone MP4 containers, as well as stream fragments, are served from an Akamai bc-evod.akamaized.net
hostname/CDN...
I wouldn't rule out some content being geo-fenced for non-ZA IPs...
Should be doable 😄 ...