close

This ticket was migrated to our GitLab and can now be found here: #9632

Opened 7 years ago

Closed 3 years ago

Last modified 3 years ago

#9632 closed enhancement (fixed)

Implement cookie management for protected HLS streams

Reported by: brianV Owned by:
Priority: normal Milestone: 3.0 FF
Component: Input: network streams Version: master git
Severity: normal Keywords:
Cc: Difficulty: unknown
Platform(s): all Work status: Not started

Description

Currently, VLC cannot be used for protected HLS streams from several major providers (for example, NeuLion?) who implement in the following way:

  1. The HLS playlist file (*.m3u8) sets a cookie when fetched.
  2. Segments in the playlist have a URL referencing a key server in their #EXT_X_KEY URL attribute. The key server is on the same domain, different subdomain.
  3. The request to fetch the key from the key server requires the cookie provided with the .m3u8 file to be included in the request to the key server.

This is my first VLC ticket, so please refile properly if incorrect.

Attachments (2)

HLS-RAI_2.pcapng (24.3 KB) - added by pecana 3 years ago.
New capture
vlc_logcat_20171028_181515.log (23.1 KB) - added by pecana 3 years ago.
VLC VLC-Android-2.5.6-20171026-0240-ARMv7 log

Download all attachments as: .zip

Change History (17)

comment:1 Changed 7 years ago by aajanki

I believe this is fixed by commit 68699a32 but I don't have any suitable HLS streams available for testing.

comment:2 Changed 6 years ago by Ilkka Ollakka

Resolution: fixed
Status: newclosed

Yes, fixed by 68699a32

comment:3 Changed 6 years ago by Rémi Denis-Courmont

Milestone: Features paradize3.0.0

comment:4 Changed 5 years ago by Jean-Baptiste Kempf

Milestone: 3.0.03.0.0 FF

Milestone renamed

comment:5 Changed 5 years ago by giac0m0

I don't believe this was fixed. BBC HLS streams have the following requirement:

For Ondemand content, the request to GET the first HLS playlist (master.m3u8) may return a Session Cookie. If such a Cookie is returned, clients MUST present it on all subsequent GET requests (both for second playlists and media segments) related to that programme. Failure to do so may return an HTTP 403 error.



Both live streams and on-demand programmes (both UK and outside UK) cannot play in VLC.

comment:6 Changed 5 years ago by giac0m0

Resolution: fixed
Status: closedreopened

comment:7 Changed 5 years ago by Rémi Denis-Courmont

Milestone: 3.0.0 FFBugs paradize

It was unfixed by adaptive plugin not using the common HTTP access plugin, and thus losing cookies support.

comment:8 Changed 3 years ago by Francois Cartegnie

Resolution: fixed
Status: reopenedclosed

comment:9 Changed 3 years ago by pecana

Still not working for me :-( Just compilde libvlc from source https://pastebin.com/W4yKGEX8

comment:10 Changed 3 years ago by Francois Cartegnie

If that does not work, trace network. In my tests, cookies are stored and forwarded on every request.

comment:11 Changed 3 years ago by pecana

Do you want me to capture packets ?

comment:12 Changed 3 years ago by Jean-Baptiste Kempf

Yes.

Changed 3 years ago by pecana

Attachment: HLS-RAI_2.pcapng added

New capture

Changed 3 years ago by pecana

VLC VLC-Android-2.5.6-20171026-0240-ARMv7 log

comment:13 Changed 3 years ago by pecana

Resolution: fixed
Status: closedreopened

Still not working on Android:

Log: https://pastebin.com/kgMAiuQC

packates capture : https://drive.google.com/open?id=1t1RM71WgL5VwDF99zIOci2FBJ5Ujitu3

Vlc on android does not set cookies for subsequent segment

Last edited 3 years ago by pecana (previous) (diff)

comment:14 Changed 3 years ago by Rémi Denis-Courmont

Resolution: fixed
Status: reopenedclosed

comment:15 Changed 3 years ago by Rémi Denis-Courmont

Milestone: Bugs paradize3.0 FF
Note: See TracTickets for help on using tickets.