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

Support for Disneychannelgemist.nl #7409

Closed
jos34-2 opened this issue Nov 9, 2015 · 25 comments
Closed

Support for Disneychannelgemist.nl #7409

jos34-2 opened this issue Nov 9, 2015 · 25 comments

Comments

@jos34-2
Copy link

@jos34-2 jos34-2 commented Nov 9, 2015

I want support for disneychannelgemist.nl episodes (http://www.disney.nl/disney-channel/gemist)
I think the video's are Kaltura streams, but i'm not sure.

@jaimeMF
Copy link
Collaborator

@jaimeMF jaimeMF commented Nov 9, 2015

@Reino17
Copy link

@Reino17 Reino17 commented Nov 9, 2015

I want...

You may want to tone down that attitude. Nobody owes you anything.

youtube-dl.exe -vF http://www.disney.nl/disney-channel/gemist/violetta#/videoId/violetta-s3-aflevering-200
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'-vF', u'http://www.disney.nl/disney-channel/gemist/violetta#/videoId/violetta-s3-aflevering-200']
[debug] Encodings: locale cp1252, fs mbcs, out cp437, pref cp1252
[debug] youtube-dl version 2015.11.02
[debug] Python version 2.7.10 - Windows-XP-5.1.2600-SP3
[debug] exe versions: ffmpeg N-75746-g84b4998
[debug] Proxy map: {}
[generic] violetta-s3-aflevering-200: Requesting header
WARNING: Falling back on generic information extractor.
[generic] violetta-s3-aflevering-200: Downloading webpage
[generic] violetta-s3-aflevering-200: Extracting information
ERROR: Unsupported URL: http://www.disney.nl/disney-channel/gemist/violetta#/videoId/violetta-s3-aflevering-200
Traceback (most recent call last):
  File "youtube_dl\extractor\generic.pyo", line 1241, in _real_extract
  File "youtube_dl\compat.pyo", line 248, in compat_etree_fromstring
  File "youtube_dl\compat.pyo", line 237, in _XML
  File "xml\etree\ElementTree.pyo", line 1642, in feed
  File "xml\etree\ElementTree.pyo", line 1506, in _raiseerror
ParseError: syntax error: line 1, column 0
Traceback (most recent call last):
  File "youtube_dl\YoutubeDL.pyo", line 661, in extract_info
  File "youtube_dl\extractor\common.pyo", line 290, in extract
  File "youtube_dl\extractor\generic.pyo", line 1839, in _real_extract
UnsupportedError: Unsupported URL: http://www.disney.nl/disney-channel/gemist/violetta#/videoId/violetta-s3-aflevering-200

They're Kaltura videos indeed. HTML-source:

<script src="http://cdnapi.kaltura.com/p/1068292/sp/106829200/embedIframeJs/uiconf_id/27176231/partner_id/1068292"></script>

<script type="text/javascript" class="kaltura_embed kalturavideo_56409ff70fe87">

    window.embedConfig = {
        uniqueId : 'kalturavideo_56409ff70fe87',
        entryId : '1_9h422c03',
        paramName : 'videoId',
        hasDeeplink : false,
        embedEventName : 'kaltura_embed_trigger',
        json : {"idlist":{"nl-dc-violetta-full-episodes-season-3-playlist":"1_lh06jyeh","violetta-aflevering-210-seizoen-3":"1_9h422c03","violetta-aflevering-209-seizoen-3":"1_q2t31p0z","violetta-aflevering-208-seizoen-3":"1_kdsasliz","violetta-aflevering-207-seizoen-3":"1_icvqv4t2","violetta-aflevering-206-seizoen-3":"1_acsh2z6d"},"playlists":[{"id":"1_lh06jyeh","longId":"nl-dc-violetta-full-episodes-season-3-playlist","name":"NL DC - Violetta - Full Episodes - Season 3_playlist","description":null,"playlist":[{"id":"1_9h422c03","longId":"violetta-aflevering-210-seizoen-3","name":"Violetta - Aflevering 210 - Seizoen 3","description":"Leon vraagt Vera om niet meer naar de de garage te komen tot ze begrijpt hoe hij tegenover Violetta staat. Nadia ziet Maxim en Matilda samen zingen en is ervan overtuigd dat ze Maxim kwijt is.","pageTitle":"Violetta - Aflevering 210 - Seizoen 3 | Violetta gemist - episodes page | Disney UK"},{"id":"1_q2t31p0z","longId":"violetta-aflevering-209-seizoen-3","name":"Violetta - Aflevering 209 - Seizoen 3","description":"Violetta vergeeft Francisca nadat ze haar brief gelezen heeft. Camilla is net zo blij met de hernieuwde vriendschap tussen Violetta en Francisca als de meiden zelf.","pageTitle":"Violetta - Aflevering 209 - Seizoen 3 | Violetta gemist - episodes page | Disney UK"},{"id":"1_kdsasliz","longId":"violetta-aflevering-208-seizoen-3","name":"Violetta - Aflevering 208 - Seizoen 3","description":"Alex\/Clement wil Violetta kussen, maar ze houdt hem tegen en maakt hem duidelijk dat ze alleen vrienden zijn. Francisca zegt tegen producent Martin Rosetti dat ze met hem naar Europa gaat op voorwaarde dat hij wil investeren in de Studio.","pageTitle":"Violetta - Aflevering 208 - Seizoen 3 | Violetta gemist - episodes page | Disney UK"},{"id":"1_icvqv4t2","longId":"violetta-aflevering-207-seizoen-3","name":"Violetta - Aflevering 207 - Seizoen 3","description":"Vera doet zich tegenover Violetta voor als de vriendin van Leon, maar als Violetta Leon vraagt naar zijn relatie met Vera, ontkent Vera dat ze iets met hem heeft. Martin, de Italiaanse muziekproducent belooft Francisca een solocarri\u00e8re in Europa.","pageTitle":"Violetta - Aflevering 207 - Seizoen 3 | Violetta gemist - episodes page | Disney UK"},{"id":"1_acsh2z6d","longId":"violetta-aflevering-206-seizoen-3","name":"Violetta - Aflevering 206 - Seizoen 3","description":"Het zit Violetta flink dwars dat Francisca haar niet in vertrouwen nam over haar relatie met Diego; en ze kan Francisca niet vergeven. Violetta is ook boos op Camilla, die van de relatie op de hoogte was.","pageTitle":"Violetta - Aflevering 206 - Seizoen 3 | Violetta gemist - episodes page | Disney UK"}]}],"config":{"autoPlay":true,"loop":true,"continuous":true,"monitorUrl":true,"updateUrl":true,"updateTitle":false,"scrollToVideo":true,"delayEmbed":false}},
        loop : true,
        partnerId : '_1068292',
        uiConfId : '27176231',
        doubleClick : {}
    };

I've had a look at this website already, but I couldn't find out how to recover the videolinks. Another strange thing; the videolinks this Kaltura website returns upon having entered partnerId : '_1068292' and entryId : '1_9h422c03' don't seem to work at all. Perhaps you can shed some light on this.

@jos34-2
Copy link
Author

@jos34-2 jos34-2 commented Nov 9, 2015

Sorry, my English is very bad. I don't know what "i want" really means. But i can
promise it's not my intention to rude to you.

No i don't understand that site, maybe you can try something with the other IDs? (playlist ID), maybe on the disney.co.uk website where is see a reference to.
Or figure out what MIME type is.

@dstftw dstftw closed this in 1c31a5b Nov 9, 2015
@dstftw dstftw reopened this Nov 9, 2015
@jos34-2
Copy link
Author

@jos34-2 jos34-2 commented Nov 9, 2015

Maybe can anyone do something with: http://kalturahd-vh.akamaihd.net/z/content/r71v1/entry/data/279/612/1_x67vh8ql_1_,lqv6b3ik,f1eb11kq,a58webjg,qxzec0zu,_1.mp4.csmil/manifest.f4m?g=YRFCRUESIDVU&hdcore=3.1.0&plugin=aasp-3.1.0.43.124
Or this: http://www.adobe.com/devnet/hds.html
I this it is manisfest.f4m
Maybe its a fragmented video file, maybe it's DRM protected??

I have try fellowing software packages with no succes:
Orbit downloader. Url snooper. RTMP dump, Streamtransport. FLVstreamer, RipTiger, Internet Download Manager (IDM), VSO Downloader

@jos34-2
Copy link
Author

@jos34-2 jos34-2 commented Nov 9, 2015

Good and bad news.

I succes to download a video (http://www.disney.nl/disney-channel/gemist/jonge-garde#/videoId/jonge-garde-aflevering-9-seizoen-1) with Internet Download manager on internet explorer.
The .FLV file is 312 MB large in size, but it don't playing.
The URL IDM used is: http://kalturahd-vh.akamaihd.net/z/content/r71v1/entry/data/487/754/1_7n42kank_1_,yojx1e8x,7v8k2koo,cc84qit8,iubgzmj4,2h3xwcdy,y0ble8kj,_1.mp4.csmil/5_c078a35f75c35505_
The video lenght: 11:31 min:sec. that IDM reported is correct.
IDM also reported this URL: http://cdnapi.kaltura.com/html5/html5lib/v2.30.2/modules/EmbedPlayer/binPlayers/kaltura-player/plugins/akamaiHDPlugin.swf
There is a option to enter username and password, but don't know them.
Maybe the video server required account verification??

@Reino17
Copy link

@Reino17 Reino17 commented Nov 9, 2015

python -m youtube_dl -vF http://www.disney.nl/disney-channel/gemist/violetta#/videoId/violetta-s3-aflevering-200
[debug] System config: []
[debug] User config: []
[debug] Command-line args: ['-vF', 'http://www.disney.nl/disney-channel/gemist/violetta#/videoId/violetta-s3-aflevering-200']
[debug] Encodings: locale cp1252, fs mbcs, out cp437, pref cp1252
[debug] youtube-dl version 2015.11.02
[debug] Python version 3.4.2 - Windows-XP-5.1.2600-SP3
[debug] exe versions: none
[debug] Proxy map: {}
[generic] violetta-s3-aflevering-200: Requesting header
WARNING: Falling back on generic information extractor.
[generic] violetta-s3-aflevering-200: Downloading webpage
[generic] violetta-s3-aflevering-200: Extracting information
[Kaltura] 1_9h422c03: Downloading Kaltura signature
[Kaltura] 1_9h422c03: Downloading video info JSON
[info] Available formats for 1_9h422c03:
format code  extension  resolution note
mp4-469      mp4        480x272     469k , isom container, avc1, 25fps, ~132.00MiB
mp4-669      mp4        640x360     669k , isom container, avc1, 25fps, ~188.00MiB
mp4-969      mp4        640x360     969k , isom container, avc1, 25fps, ~272.00MiB
mp4-1628     mp4        1024x576   1628k , isom container, avc1, 25fps, ~453.00MiB
mp4-2633     mp4        1280x720   2633k , isom container, avc1, 25fps, ~739.00MiB
mp4-3721     mp4        1920x1080  3721k , isom container, avc1, 25fps, ~1.02GiB (best)

python -m youtube_dl http://www.disney.nl/disney-channel/gemist/violetta#/videoId/violetta-s3-aflevering-200
[generic] violetta-s3-aflevering-200: Requesting header
WARNING: Falling back on generic information extractor.
[generic] violetta-s3-aflevering-200: Downloading webpage
[generic] violetta-s3-aflevering-200: Extracting information
[Kaltura] 1_9h422c03: Downloading Kaltura signature
[Kaltura] 1_9h422c03: Downloading video info JSON
ERROR: unable to download video data: HTTP Error 404: Not Found

Thanks dstftw, but the http error... what do you think? Is Kaltura to blame for that?

@dstftw
Copy link
Collaborator

@dstftw dstftw commented Nov 9, 2015

@corone17 did not yet look further.

@jos34-2
Copy link
Author

@jos34-2 jos34-2 commented Nov 9, 2015

With GetFLV i get a working video file, to download with the IE kernel mode.

@Reino17
Copy link

@Reino17 Reino17 commented Nov 19, 2015

@dstftw have you looked any further yet?
All the video-urls youtube-dl returns don't seem to exist (HTTP Error 404).

@dstftw
Copy link
Collaborator

@dstftw dstftw commented Nov 19, 2015

@corone17 no, I forgot.

@Reino17
Copy link

@Reino17 Reino17 commented Nov 21, 2015

python -m youtube_dl -vF http://www.disney.nl/disney-channel/gemist/violetta#/videoId/violetta-s3-aflevering-200
[debug] System config: []
[debug] User config: []
[debug] Command-line args: ['-vF', 'http://www.disney.nl/disney-channel/gemist/violetta#/videoId/violetta-s3-aflevering-200']
[debug] Encodings: locale cp1252, fs mbcs, out cp437, pref cp1252
[debug] youtube-dl version 2015.11.19
[debug] Python version 3.4.2 - Windows-XP-5.1.2600-SP3
[debug] exe versions: none
[debug] Proxy map: {}
[generic] violetta-s3-aflevering-200: Requesting header
WARNING: Falling back on generic information extractor.
[generic] violetta-s3-aflevering-200: Downloading webpage
[generic] violetta-s3-aflevering-200: Extracting information
[Kaltura] 1_vnr1y6rz: Downloading Kaltura signature
[Kaltura] 1_vnr1y6rz: Downloading video info JSON
[Kaltura] 1_vnr1y6rz: Checking mp4-469 video format URL
[Kaltura] 1_vnr1y6rz: mp4-469 video format URL is invalid, skipping
[Kaltura] 1_vnr1y6rz: Checking mp4-669 video format URL
[Kaltura] 1_vnr1y6rz: mp4-669 video format URL is invalid, skipping
[Kaltura] 1_vnr1y6rz: Checking mp4-969 video format URL
[Kaltura] 1_vnr1y6rz: mp4-969 video format URL is invalid, skipping
[Kaltura] 1_vnr1y6rz: Checking mp4-1628 video format URL
[Kaltura] 1_vnr1y6rz: mp4-1628 video format URL is invalid, skipping
[Kaltura] 1_vnr1y6rz: Checking mp4-2633 video format URL
[Kaltura] 1_vnr1y6rz: mp4-2633 video format URL is invalid, skipping
[Kaltura] 1_vnr1y6rz: Checking mp4-3725 video format URL
[Kaltura] 1_vnr1y6rz: mp4-3725 video format URL is invalid, skipping
ERROR: No video formats found; please report this issue on https://yt-dl.org/bug .
Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update.
Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "...\youtube-dl-master\youtube_dl\YoutubeDL.py", line 661, in extract_info
    ie_result = ie.extract(url)
  File "...\youtube-dl-master\youtube_dl\extractor\common.py", line 290, in extract
    return self._real_extract(url)
  File "...\youtube-dl-master\youtube_dl\extractor\kaltura.py", line 164, in _real_extract
    self._sort_formats(formats)
  File "...\youtube-dl-master\youtube_dl\extractor\common.py", line 766, in _sort_formats
    raise ExtractorError('No video formats found')
youtube_dl.utils.ExtractorError: No video formats found; please report this issue on https://yt-dl.org/bug .
Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update.
Be sure to call youtube-dl with the --verbose flag and include its complete output.
@Reino17
Copy link

@Reino17 Reino17 commented Feb 14, 2016

youtube-dl.exe -vF http://www.disney.nl/disney-channel/gemist/good-luck-charlie/good-luck-charlie-aflevering-34-seizoen-2-v~1_otx4g1cp/
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'-vF', u'http://www.disney.nl/disney-channel/gemist/good-luck-charlie/g
ood-luck-charlie-aflevering-34-seizoen-2-v~1_otx4g1cp/']
[debug] Encodings: locale cp1252, fs mbcs, out cp437, pref cp1252
[debug] youtube-dl version 2016.02.13
[debug] Python version 2.7.10 - Windows-XP-5.1.2600-SP3
[debug] exe versions: ffmpeg N-75746-g84b4998
[debug] Proxy map: {}
[generic] good-luck-charlie-aflevering-34-seizoen-2-v~1_otx4g1cp: Requesting header
WARNING: Falling back on generic information extractor.
[generic] good-luck-charlie-aflevering-34-seizoen-2-v~1_otx4g1cp: Downloading webpage
[generic] good-luck-charlie-aflevering-34-seizoen-2-v~1_otx4g1cp: Extracting information
[Kaltura] 1_otx4g1cp: Downloading Kaltura signature
[Kaltura] 1_otx4g1cp: Downloading video info JSON
[Kaltura] 1_otx4g1cp: Downloading m3u8 information
[Kaltura] 1_otx4g1cp: Checking mp4-3249 video format URL
[Kaltura] 1_otx4g1cp: mp4-3249 video format URL is invalid, skipping
[Kaltura] 1_otx4g1cp: Checking mp4-469 video format URL
[Kaltura] 1_otx4g1cp: Checking mp4-669 video format URL
[Kaltura] 1_otx4g1cp: Checking webm-823 video format URL
[Kaltura] 1_otx4g1cp: Checking mp4-967 video format URL
[Kaltura] 1_otx4g1cp: Checking mp4-1628 video format URL
[Kaltura] 1_otx4g1cp: Checking mp4-2628 video format URL
[Kaltura] 1_otx4g1cp: Checking mp4-3727 video format URL
[Kaltura] 1_otx4g1cp: Checking 3gp-369 video format URL
[Kaltura] 1_otx4g1cp: Checking hls-meta video format URL
[Kaltura] 1_otx4g1cp: Checking hls-463 video format URL
[Kaltura] 1_otx4g1cp: Checking hls-663 video format URL
[Kaltura] 1_otx4g1cp: Checking hls-960 video format URL
[Kaltura] 1_otx4g1cp: Checking hls-1595 video format URL
[info] Available formats for 1_otx4g1cp:
format code  extension  resolution note
hls-meta     mp4        multiple   Quality selection URL
3gp-369      3gp        320x176     369k , 3gp4 container, mpeg-4 visual, 25fps, ~58.20MiB
hls-463      mp4        480x272     463k , avc1.66.30,  mp4a.40.2
mp4-469      mp4        480x272     469k , isom container, avc1, 25fps, ~73.90MiB
hls-663      mp4        640x360     663k , avc1.66.30,  mp4a.40.2
mp4-669      mp4        640x360     669k , isom container, avc1, 25fps, ~105.00MiB
webm-823     webm       640x360     823k , webm container, v_vp8, 25fps, ~130.00MiB
hls-960      mp4        640x360     960k , avc1.77.30,  mp4a.40.2
mp4-967      mp4        640x360     967k , isom container, avc1, 25fps, ~152.00MiB
hls-1595     mp4        1024x576   1595k , avc1.77.30,  mp4a.40.2
mp4-1628     mp4        1024x576   1628k , isom container, avc1, 25fps, ~252.00MiB
mp4-2628     mp4        1280x720   2628k , isom container, avc1, 25fps, ~414.00MiB
mp4-3727     mp4        1920x1080  3727k , isom container, avc1, 25fps, ~587.00MiB (best)

I guess other commits fixed this issue in the meantime, because it works now.

With the help of --write-pages and --print-traffic I understand now how to recover the kaltura video-urls, but there's one thing I still don't understand how it's recovered.

kaltura.py:

url, smuggled_data = unsmuggle_url(url, {})
source_url = smuggled_data.get('source_url')
if source_url:
    referrer = base64.b64encode(
        '://'.join(compat_urlparse.urlparse(source_url)[:2])
        .encode('utf-8')).decode('utf-8')
else:
    referrer = None

Can anyone explain to me how this referrer is constructed?

@dstftw
Copy link
Collaborator

@dstftw dstftw commented Feb 14, 2016

I guess other commits fixed this issue in the meantime, because it works now.

Still does not work for me, not even clips that worked before.

Can anyone explain to me how this referrer is constructed?

It obtains base64 of original URL's scheme://host (e.g. http://www.disney.nl).

@Reino17
Copy link

@Reino17 Reino17 commented Feb 15, 2016

Still does not work for me, not even clips that worked before.

Could you name one? Perhaps it's geo-restricted?

It gets base64 of original URL's scheme://host (e.g. http://www.disney.nl).

That I understand. I already noticed the referrer always being http://www.disney.nl in this case.
But what exactly happens in unsmuggle_url()? The referrer is set only if the variable 'source_url' exists. What's the condition for 'source_url' to exist?

@Reino17
Copy link

@Reino17 Reino17 commented Feb 18, 2016

Do you know, dstftw? referrer is set only when source_url exists, but what happens in smuggled_data.get('source_url') and unsmuggle_url(url, {})?

@dstftw
Copy link
Collaborator

@dstftw dstftw commented Feb 18, 2016

source_url is always passed from generic extractor.

@Reino17
Copy link

@Reino17 Reino17 commented Feb 18, 2016

Pfff, I was talking about the variable source_url from the code-snippet above.
Sorry, but I don't know how to phrase my question more clearly. If you don't understand my question, then I'll ask someone else.

@dstftw
Copy link
Collaborator

@dstftw dstftw commented Feb 18, 2016

What you don't understand? You pass http://www.disney.nl/disney-channel/gemist/good-luck-charlie/good-luck-charlie-aflevering-34-seizoen-2-v~1_otx4g1cp/ to youtube-dl, it's picked by generic extractor, kaltura embed is detected, extraction is delegated to kaltura extractor with http://www.disney.nl/disney-channel/gemist/good-luck-charlie/good-luck-charlie-aflevering-34-seizoen-2-v~1_otx4g1cp/ passed as source_url.
There is nothing happens in smuggle/unsmuggle, it's just internal youtube-dl mechanism to pass additional data.

@Reino17
Copy link

@Reino17 Reino17 commented Feb 18, 2016

But what does smuggle/unsmuggle do? That's what I don't understand.

Are you saying that every kaltura url will get a referrer at the end? If so, then else: referrer = None really confuses me, because I thought that the variable referrer is only set when smuggled_data.get('source_url') returns something.

@dstftw
Copy link
Collaborator

@dstftw dstftw commented Feb 18, 2016

Every kaltura URL processed from generic extractor will do.
Look into sources if you want to know how exactly additional data is packed and unpacked in smuggle/unsmuggle.

@Reino17
Copy link

@Reino17 Reino17 commented Feb 18, 2016

That's exactly the problem; I'm not too familiar with Python yet. But nevermind. From now on I'll always add a referrer at the end.

@dstftw
Copy link
Collaborator

@dstftw dstftw commented Feb 18, 2016

As I've already said you don't need to know this, I myself don't remeber how it's implemented. It's solely internal mechanism to pass url with "somedata" to extractor and be able to unpack this url and "somedata" intact.

@Reino17
Copy link

@Reino17 Reino17 commented Feb 18, 2016

I have my own project that supports this disney url, so I do need to know about the referrer. For Youtube-dl endusers, you're right of course.

@Reino17
Copy link

@Reino17 Reino17 commented Jan 28, 2017

youtube-dl.exe -vF "http://video.disney.nl/videos/bizaardvark-aflevering-5-seizoen-1-54637ca5
63d5fc6b66f3ba8d"
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-vF', 'http://video.disney.nl/videos/bizaardvark-aflevering-5-se
izoen-1-54637ca563d5fc6b66f3ba8d']
[debug] Encodings: locale cp1252, fs mbcs, out cp437, pref cp1252
[debug] youtube-dl version 2017.01.28
[debug] Python version 3.4.4 - Windows-XP-5.1.2600-SP3
[debug] exe versions: ffmpeg N-82759-g1f5630a-Sherpya
[debug] Proxy map: {}
[Disney] 54637ca563d5fc6b66f3ba8d: Downloading webpage
[info] Available formats for 54637ca563d5fc6b66f3ba8d:
format code      extension  resolution note
mp4-65           mp4        audio only   65k
unknown-3gp-369  3gp        320x176     369k
mp4-469          mp4        480x272     469k
mp4-668          mp4        640x360     668k
webm-834         webm       640x360     834k
mp4-964          mp4        640x360     964k
mp4-1628         mp4        1024x576   1628k
mp4-2628         mp4        1280x720   2628k
mp4-3726         mp4        1920x1080  3726k  (best)

I only see the the progressive formats. The adaptive formats are still available though (at least for http://video.disney.nl/ here).
I'm not too familiar with Python, but I presume XPath/XQuery isn't too dificult for you to understand:

Extract the embed-url:

xidel-0.9.6.exe -s "http://video.disney.nl/videos/bizaardvark-aflevering-5-seizoen-1-54637ca5
63d5fc6b66f3ba8d"
-e "json(
      //script/extract(
        .,
        'burger=(.+):\(',1
      )[.]
    )/(.//embedURL)[1]"
http://video.disney.nl/embed/54637ca563d5fc6b66f3ba8d

Follow the embed-url and extract dataUrl:

xidel-0.9.6.exe -s "http://video.disney.nl/videos/bizaardvark-aflevering-5-seizoen-1-54637ca5
63d5fc6b66f3ba8d"
-f "json(
      //script/extract(
        .,
        'burger=(.+):\(',1
      )[.]
    )/(.//embedURL)[1]"
-e "json(
      //script/extract(
        .,
        '(\{.+);',1
      )[.]
    )/(.//externals)[1]//dataUrl"
http://cdnapi.kaltura.com/p/1068292/sp/106829200/playManifest/entryId/1_9hfe9n0i/format/url/p
rotocol/http

Follow the embed-url and enumerate the available flavors (except for webm and sound-only) extracted from the progressive urls:

xidel-0.9.6.exe -s "http://video.disney.nl/videos/bizaardvark-aflevering-5-seizoen-1-54637ca5
63d5fc6b66f3ba8d"
-f "json(
      //script/extract(
        .,
        'burger=(.+):\(',1
      )[.]
    )/(.//embedURL)[1]"
-e "json(
      //script/extract(
        .,
        '(\{.+);',1
      )[.]
    )//flavors/join(
      .()[height!=0][format='mp4']/extract(
        url,
        'flavorId/(.+?)/',1
      ),
      ','
    )"
1_7ld4699f,1_eu7j68yl,1_moncky45,1_d5k3i98r,1_6m6mp318,1_f2ezpjq1

Follow the embed-url, create the referrer as base64, extract dataUrl and finally create the manifest-playlist-url by putting together a substring of dataUrl, the enumerated flavors, some text and the referrer:

xidel-0.9.6.exe -s "http://video.disney.nl/videos/bizaardvark-aflevering-5-seizoen-1-54637ca5
63d5fc6b66f3ba8d"
-f "json(
      //script/extract(
        .,
        'burger=(.+):\(',1
      )[.]
    )/(.//embedURL)[1]"
-e "let $ref:=string-to-base64Binary(
      concat(
        'http://',
        $host
      )
    ) return
    json(
      //script/extract(
        .,
        '(\{.+\})',1
      )[.]
    )/(
      let $dataUrl:=(.//externals)()[1]//dataUrl return
      .//flavors/concat(
        substring-before(
          $dataUrl,
          'format'
        ),
        'flavorIds/',
        join(
          .()[height!=0][format='mp4']/extract(
            url,
            'flavorId/(.+?)/',1
          ),
          ','
        ),
        '/format/applehttp/protocol/http?referrer=',
        $ref
      )
    )"
http://cdnapi.kaltura.com/p/1068292/sp/106829200/playManifest/entryId/1_9hfe9n0i/flavorIds/1_
7ld4699f,1_eu7j68yl,1_moncky45,1_d5k3i98r,1_6m6mp318,1_f2ezpjq1/format/applehttp/protocol/ht
tp?referrer=aHR0cDovL3ZpZGVvLmRpc25leS5ubA==
@yan12125
Copy link
Collaborator

@yan12125 yan12125 commented Feb 1, 2017

@Reino17 you may want to open a new issue for missing formats

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
5 participants
You can’t perform that action at this time.