[FFmpeg-devel] Test avformat_open_input by command line

2015-11-23 Thread Lucas Andrade
When Kodi tries to play a specific live stream it returns error 403 after
some time due to the update of a cookie.
I've done a patch to ffmpeg and version 2.8.2 works like a charm with the
command line like: ffmpeg -i "fullurl.m3u8" -c copy "teste.ts"

But with the new Kodi 12.0 beta that has the 2.8.2 lib on the windows
release it still returns error 403 after some time.

I need some help to realize what's wrong with my fix:
https://github.com/FFmpeg/FFmpeg/commit/770dd105044d00263da041f509a08b316296a78e

Is there a way to ensure that the ffmpeg command will use
the avformat_open_input?

Best Regards,
Lucas
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] AMD VCE encoder

2015-11-06 Thread Lucas Andrade
Hello, I was looking into AMD VCE encoder and I did realize that there is
only a Windows SDK. Should I try to add a Windows only feature? And it
won't be able to compile on Linux. What do you guys think about it?
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] Update Cookies on Setcookie playlist response

2015-10-30 Thread Lucas Andrade
Em sex, 30 de out de 2015 às 07:44, Michael Niedermayer
 escreveu:

> On Tue, Oct 27, 2015 at 11:28:32AM +0000, Lucas Andrade wrote:
> > Here is the patch to backport it to release/2.8. To be fixed on 2.8.2.
> > Anything else I should do?
> >
> > ps. Sorry, that's my first time on opensource project, I'm a little
> > confused that I needed to add it to the release branch.
>
> >  hls.c |   31 +++
> >  1 file changed, 15 insertions(+), 16 deletions(-)
> > 6b3c2cdc68e5fe0d9665a22a78837bca7d7b39b9
> b3f3eab029eb429660fc1651a33dafe097cbac0e.patch
> > From b3f3eab029eb429660fc1651a33dafe097cbac0e Mon Sep 17 00:00:00 2001
> > From: Lucas de Andrade 
> > Date: Mon, 26 Oct 2015 10:47:08 -0200
> > Subject: [PATCH] Update Cookies response with Setcookie
> >
> > Context cookies must be updated when a playlist response return
> Setcookie header.
> > Backported to release/2.8
> > ---
> >  libavformat/hls.c | 31 +++
> >  1 file changed, 15 insertions(+), 16 deletions(-)
>
> this patch is against n2.8 not release/2.8
>
> git checkout release/2.8
> git cherry-pick ...
> error: patch failed: libavformat/hls.c:962
> error: libavformat/hls.c: patch does not apply
> Patch failed at 0001 Update Cookies response with Setcookie
> The copy of the patch that failed is found in:
>ffmpeg/.git/rebase-apply/patch
> When you have resolved this problem, run "git am --continue".
> If you prefer to skip this patch, run "git am --skip" instead.
> To restore the original branch and stop patching, run "git am --abort".
>
> [...]
>
> --
> Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> Frequently ignored answer#1 FFmpeg bugs should be sent to our bugtracker.
> User
> questions about the command line tools should be sent to the ffmpeg-user
> ML.
> And questions about how to use libav* should be sent to the libav-user ML.
> ___
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Sorry, I needed to update release/2.8. It was a previous version.
Here it is.


update cookies on setcookie response.patch
Description: Binary data
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] Update Cookies on Setcookie playlist response

2015-10-29 Thread Lucas Andrade
Em ter, 27 de out de 2015 às 09:28, Lucas Andrade 
escreveu:

> Here is the patch to backport it to release/2.8. To be fixed on 2.8.2.
> Anything else I should do?
>
> ps. Sorry, that's my first time on opensource project, I'm a little
> confused that I needed to add it to the release branch.
>

Do I need to do anything else? It hasn't been added to release/2.8 branch
yet.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] Update Cookies on Setcookie playlist response

2015-10-27 Thread Lucas Andrade
Here is the patch to backport it to release/2.8. To be fixed on 2.8.2.
Anything else I should do?

ps. Sorry, that's my first time on opensource project, I'm a little
confused that I needed to add it to the release branch.


b3f3eab029eb429660fc1651a33dafe097cbac0e.patch
Description: Binary data
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] Update Cookies on Setcookie playlist response

2015-10-23 Thread Lucas Andrade
Can this patch be added to 2.9-dev? I think it should be released on 2.8.1
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] Update Cookies on Setcookie playlist response

2015-09-25 Thread Lucas Andrade
Ok, I know I did it wrong with the PR. I've used the PR to create the
patch. Sorry for trying to help.
Anyway, here it is the all-in-one patch.


Update Cookies response with Setcookie.patch
Description: Binary data
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] Update Cookies on Setcookie playlist response

2015-09-25 Thread Lucas Andrade
Ok, I'll try to merge all those patches at a single one.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] Update Cookies on Setcookie playlist response

2015-09-25 Thread Lucas Andrade
Here it is. Also sent as PR on github.


Update Cookies Setcookie response.patch
Description: Binary data
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] Update Cookies on Setcookie playlist response

2015-09-25 Thread Lucas Andrade
I did test with a similar command posted on the tracker, cookies were
updated correctly.

Em sex, 25 de set de 2015 às 10:26, wm4  escreveu:

> On Fri, 25 Sep 2015 02:00:29 +
> Lucas Andrade  wrote:
>
> > diff --git a/libavformat/hls.c b/libavformat/hls.c
> > index adaa33a..f9f86af 100644
> > --- a/libavformat/hls.c
> > +++ b/libavformat/hls.c
> > @@ -525,6 +525,14 @@ static int url_connect(struct playlist *pls,
> AVDictionary *opts, AVDictionary *o
> >  return ret;
> >  }
> >
> > +static void update_options(char **dest, const char *name, void *src)
> > +{
> > +av_freep(dest);
> > +av_opt_get(src, name, 0, (uint8_t**)dest);
> > +if (*dest && !strlen(*dest))
> > +av_freep(dest);
> > +}
> > +
> >  static int open_url(HLSContext *c, URLContext **uc, const char *url,
> AVDictionary *opts)
> >  {
> >  AVDictionary *tmp = NULL;
> > @@ -534,6 +542,12 @@ static int open_url(HLSContext *c, URLContext **uc,
> const char *url, AVDictionar
> >  av_dict_copy(&tmp, opts, 0);
> >
> >  ret = ffurl_open(uc, url, AVIO_FLAG_READ, c->interrupt_callback,
> &tmp);
> > +if( ret >= 0) {
> > +// update cookies on http response with setcookies.
> > +URLContext *u = *uc;
> > +update_options(&c->cookies, "cookies", u->priv_data);
> > +av_dict_set(&opts, "cookies", c->cookies, 0);
> > +}
> >
> >  av_dict_free(&tmp);
> >
> > @@ -958,18 +972,9 @@ static void intercept_id3(struct playlist *pls,
> uint8_t *buf,
> >  pls->is_id3_timestamped = (pls->id3_mpegts_timestamp !=
> AV_NOPTS_VALUE);
> >  }
> >
> > -static void update_options(char **dest, const char *name, void *src)
> > -{
> > -av_freep(dest);
> > -av_opt_get(src, name, 0, (uint8_t**)dest);
> > -if (*dest && !strlen(*dest))
> > -av_freep(dest);
> > -}
> > -
> >  static int open_input(HLSContext *c, struct playlist *pls)
> >  {
> >  AVDictionary *opts = NULL;
> > -AVDictionary *opts2 = NULL;
> >  int ret;
> >  struct segment *seg = pls->segments[pls->cur_seq_no -
> pls->start_seq_no];
> >
> > @@ -979,9 +984,6 @@ static int open_input(HLSContext *c, struct playlist
> *pls)
> >  av_dict_set(&opts, "headers", c->headers, 0);
> >  av_dict_set(&opts, "seekable", "0", 0);
> >
> > -// Same opts for key request (ffurl_open mutilates the opts so it
> cannot be used twice)
> > -av_dict_copy(&opts2, opts, 0);
> > -
> >  if (seg->size >= 0) {
> >  /* try to restrict the HTTP request to the part we want
> >   * (if this is in fact a HTTP request) */
> > @@ -999,14 +1001,12 @@ static int open_input(HLSContext *c, struct
> playlist *pls)
> >  char iv[33], key[33], url[MAX_URL_SIZE];
> >  if (strcmp(seg->key, pls->key_url)) {
> >  URLContext *uc;
> > -if (open_url(pls->parent->priv_data, &uc, seg->key, opts2)
> == 0) {
> > +if (open_url(pls->parent->priv_data, &uc, seg->key, opts)
> == 0) {
> >  if (ffurl_read_complete(uc, pls->key, sizeof(pls->key))
> >  != sizeof(pls->key)) {
> >  av_log(NULL, AV_LOG_ERROR, "Unable to read key file
> %s\n",
> > seg->key);
> >  }
> > -update_options(&c->cookies, "cookies", uc->priv_data);
> > -av_dict_set(&opts, "cookies", c->cookies, 0);
> >  ffurl_close(uc);
> >  } else {
> >  av_log(NULL, AV_LOG_ERROR, "Unable to open key file
> %s\n",
> > @@ -1038,7 +1038,7 @@ static int open_input(HLSContext *c, struct
> playlist *pls)
> >  ret = AVERROR_PATCHWELCOME;
> >  }
> >  else
> > -  ret = AVERROR(ENOSYS);
> > +ret = AVERROR(ENOSYS);
> >
> >  /* Seek to the requested position. If this was a HTTP request, the
> offset
> >   * should already be where want it to, but this allows e.g. local
> testing
> > @@ -1055,7 +1055,6 @@ static int open_input(HLSContext *c, struct
> playlist *pls)
> >
> >  cleanup:
> >  av_dict_free(&opts);
> > -av_dict_free(&opts2);
> >  pls->cur_seg_offset = 0;
> >  return ret;
> >  }
>
> Looks good. Did you test this successfully? If so, I'll apply it.
> ___
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] Update Cookies on Setcookie playlist response

2015-09-24 Thread Lucas Andrade
Here it goes.


Update Cookies on Setcookie response.diff
Description: Binary data
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] Update Cookies on Setcookie playlist response

2015-09-22 Thread Lucas Andrade
I've tested and this works. Cookies is being set correctly. As you can see,
I've removed the opts2 as it isn't needed anymore. I've added the cookie
update to open_url (setting the HLSContext->cookies and the opts (maybe
used on ciphered stream).

diff --git a/libavformat/hls.c b/libavformat/hls.c
index adaa33a..a654924 100644
--- a/libavformat/hls.c
+++ b/libavformat/hls.c
@@ -533,7 +533,11 @@ static int open_url(HLSContext *c, URLContext **uc,
const char *url, AVDictionar
 av_dict_copy(&tmp, c->avio_opts, 0);
 av_dict_copy(&tmp, opts, 0);

-ret = ffurl_open(uc, url, AVIO_FLAG_READ, c->interrupt_callback, &tmp);
+if(ret = ffurl_open(uc, url, AVIO_FLAG_READ, c->interrupt_callback,
&tmp) == 0) {
+// update cookies on http response with setcookies.
+update_options(&c->cookies, "cookies", uc->priv_data);
+av_dict_set(&opts, "cookies", c->cookies, 0);
+}

 av_dict_free(&tmp);

@@ -969,7 +973,6 @@ static void update_options(char **dest, const char
*name, void *src)
 static int open_input(HLSContext *c, struct playlist *pls)
 {
 AVDictionary *opts = NULL;
-AVDictionary *opts2 = NULL;
 int ret;
 struct segment *seg = pls->segments[pls->cur_seq_no -
pls->start_seq_no];

@@ -979,9 +982,6 @@ static int open_input(HLSContext *c, struct playlist
*pls)
 av_dict_set(&opts, "headers", c->headers, 0);
 av_dict_set(&opts, "seekable", "0", 0);

-// Same opts for key request (ffurl_open mutilates the opts so it
cannot be used twice)
-av_dict_copy(&opts2, opts, 0);
-
 if (seg->size >= 0) {
 /* try to restrict the HTTP request to the part we want
  * (if this is in fact a HTTP request) */
@@ -999,14 +999,12 @@ static int open_input(HLSContext *c, struct playlist
*pls)
 char iv[33], key[33], url[MAX_URL_SIZE];
 if (strcmp(seg->key, pls->key_url)) {
 URLContext *uc;
-if (open_url(pls->parent->priv_data, &uc, seg->key, opts2) ==
0) {
+if (open_url(pls->parent->priv_data, &uc, seg->key, opts) ==
0) {
 if (ffurl_read_complete(uc, pls->key, sizeof(pls->key))
 != sizeof(pls->key)) {
 av_log(NULL, AV_LOG_ERROR, "Unable to read key file
%s\n",
seg->key);
 }
-update_options(&c->cookies, "cookies", uc->priv_data);
-av_dict_set(&opts, "cookies", c->cookies, 0);
 ffurl_close(uc);
 } else {
 av_log(NULL, AV_LOG_ERROR, "Unable to open key file %s\n",
@@ -1038,7 +1036,7 @@ static int open_input(HLSContext *c, struct playlist
*pls)
 ret = AVERROR_PATCHWELCOME;
 }
 else
-  ret = AVERROR(ENOSYS);
+ret = AVERROR(ENOSYS);

 /* Seek to the requested position. If this was a HTTP request, the
offset
  * should already be where want it to, but this allows e.g. local
testing
@@ -1055,7 +1053,6 @@ static int open_input(HLSContext *c, struct playlist
*pls)

 cleanup:
 av_dict_free(&opts);
-av_dict_free(&opts2);
 pls->cur_seg_offset = 0;
 return ret;
 }
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] Update Cookies on Setcookie playlist response

2015-09-22 Thread Lucas Andrade
Sorry about top posting.. That's the gmail default. Anyway, I've double
checked and think you're right. I'll add that to open_url, but I need to
set the right HLSContext cookies. Right now it isn't passed as parameter to
open_url, that way, I'll have to pass it ahead.
About the opts, it isn't trashed and is used by url_connect when the video
is encrypted. I'll remove the opts2 as it isn't needed anymore, after the
creation of open_url that creates a copy of opts2.

Later tonight I'll repost the patch.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] Update Cookies on Setcookie playlist response

2015-09-22 Thread Lucas Andrade
You're right, I should at least check if ret == 0. I'll update the patch
and check if it works.

Em ter, 22 de set de 2015 às 08:09, Lucas Andrade 
escreveu:

> I think the other code paths already sets the cookie.
>
> Em Ter, 22 de set de 2015 04:41, wm4  escreveu:
>
>> On Tue, 22 Sep 2015 04:37:48 +
>> Lucas Andrade  wrote:
>>
>> > This fixes the https://trac.ffmpeg.org/ticket/4808, as it sets the
>> cookie
>> > on playlist response with setcookie header.
>> >
>> > Update Cookies on Setcookie playlist response
>> > ---
>> >  libavformat/hls.c | 2 ++
>> >  1 file changed, 2 insertions(+)
>> >
>> > diff --git a/libavformat/hls.c b/libavformat/hls.c
>> > index 82dd744..e5c84e1 100644
>> > --- a/libavformat/hls.c
>> > +++ b/libavformat/hls.c
>> > @@ -996,6 +996,8 @@ static int open_input(HLSContext *c, struct playlist
>> > *pls)
>> >
>> >  if (seg->key_type == KEY_NONE) {
>> >  ret = open_url(pls->parent->priv_data, &pls->input, seg->url,
>> > opts);
>> > +update_options(&c->cookies, "cookies", pls->input->priv_data);
>> > +av_dict_set(&opts, "cookies", c->cookies, 0);
>> >  } else if (seg->key_type == KEY_AES_128) {
>> >  // HLSContext *c = var->parent->priv_data;
>> >  char iv[33], key[33], url[MAX_URL_SIZE];
>>
>> This doesn't do the same for the other code paths.
>> ___
>> ffmpeg-devel mailing list
>> ffmpeg-devel@ffmpeg.org
>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] Update Cookies on Setcookie playlist response

2015-09-22 Thread Lucas Andrade
I think the other code paths already sets the cookie.

Em Ter, 22 de set de 2015 04:41, wm4  escreveu:

> On Tue, 22 Sep 2015 04:37:48 +
> Lucas Andrade  wrote:
>
> > This fixes the https://trac.ffmpeg.org/ticket/4808, as it sets the
> cookie
> > on playlist response with setcookie header.
> >
> > Update Cookies on Setcookie playlist response
> > ---
> >  libavformat/hls.c | 2 ++
> >  1 file changed, 2 insertions(+)
> >
> > diff --git a/libavformat/hls.c b/libavformat/hls.c
> > index 82dd744..e5c84e1 100644
> > --- a/libavformat/hls.c
> > +++ b/libavformat/hls.c
> > @@ -996,6 +996,8 @@ static int open_input(HLSContext *c, struct playlist
> > *pls)
> >
> >  if (seg->key_type == KEY_NONE) {
> >  ret = open_url(pls->parent->priv_data, &pls->input, seg->url,
> > opts);
> > +update_options(&c->cookies, "cookies", pls->input->priv_data);
> > +av_dict_set(&opts, "cookies", c->cookies, 0);
> >  } else if (seg->key_type == KEY_AES_128) {
> >  // HLSContext *c = var->parent->priv_data;
> >  char iv[33], key[33], url[MAX_URL_SIZE];
>
> This doesn't do the same for the other code paths.
> ___
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH] Update Cookies on Setcookie playlist response

2015-09-21 Thread Lucas Andrade
This fixes the https://trac.ffmpeg.org/ticket/4808, as it sets the cookie
on playlist response with setcookie header.

Update Cookies on Setcookie playlist response
---
 libavformat/hls.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libavformat/hls.c b/libavformat/hls.c
index 82dd744..e5c84e1 100644
--- a/libavformat/hls.c
+++ b/libavformat/hls.c
@@ -996,6 +996,8 @@ static int open_input(HLSContext *c, struct playlist
*pls)

 if (seg->key_type == KEY_NONE) {
 ret = open_url(pls->parent->priv_data, &pls->input, seg->url,
opts);
+update_options(&c->cookies, "cookies", pls->input->priv_data);
+av_dict_set(&opts, "cookies", c->cookies, 0);
 } else if (seg->key_type == KEY_AES_128) {
 // HLSContext *c = var->parent->priv_data;
 char iv[33], key[33], url[MAX_URL_SIZE];
-- 
1.9.5.github.0
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] HLS Stream on Kodi

2015-08-25 Thread Lucas Andrade
I'm trying to run a HLS Live Stream on Kodi and I'm getting an error 403
after 5 minutes. Checking the wireshark capture I did realize that the
ffmpeg requests aren't changing a cookie that is set on every response.

Do you guys confirm that is a FFMpeg issue?

GET
/dvr/m/off24ha/master-playlist.m3u8?h=0411440465697761939438414404691735864119652h6rN-AOOhXZcPlp2UCV8Fg&k=html5&a=F&u=52dfc02cdd2381059f57_605fd6ba-6320-4a5a-b10f-065e5363421d
HTTP/1.1
Range: bytes=0-
User-Agent: Kodi/14.1 (Windows NT 10.0; WOW64) App_Bitness/32
Version/14.1-Git:20150129-38e4046
Host: live.hls.globo.com
Accept: */*
Cookie: locksession=
Accept-Charset: UTF-8,*;q=0.8


HTTP/1.1 200 OK
Server: nginx
Date: Tue, 25 Aug 2015 01:19:39 GMT
Content-Type: application/vnd.apple.mpegurl
Content-Length: 573
Connection: keep-alive
Set-Cookie:
vssession=cR_S3dMoZipzPbX8eNy0Qw14404658790059058404/dvr/m/off24ha/?0411440465697761939438414404691735864119652h6rN-AOOhXZcPlp2UCV8Fg|F|52dfc02cdd2381059f57_605fd6ba-6320-4a5a-b10f-065e5363421d;
Expires=Tue, 25 Aug 2015 01:24:39 GMT; Path=/dvr/m/off24ha/;
Vary: Accept-Encoding
Expires: Tue, 25 Aug 2015 01:19:41 GMT
Cache-Control: private, max-age=0, no-cache
Set-Cookie: locksession=8171fe6881c99d4d95b53cd0dcf3acd9; Path=/;
Max-Age=300

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=264000
off24ha_264/playlist.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=464000
off24ha_464/playlist.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=75
off24ha_750/playlist.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1264000
off24ha_1264/playlist.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1864000
off24ha_1864/playlist.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2564000
off24ha_2564/playlist.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=64000,CODECS="mp4a.40.2"
off24ha_264/playlist-audio.m3u8


GET /dvr/m/off24ha/off24ha_2564/playlist.m3u8 HTTP/1.1
User-Agent: Kodi/14.1 (Windows NT 10.0; WOW64) App_Bitness/32
Version/14.1-Git:20150129-38e4046
Accept: */*
Connection: close
Host: live.hls.globo.com
Cookie: locksession=8171fe6881c99d4d95b53cd0dcf3acd9;
vssession=cR_S3dMoZipzPbX8eNy0Qw14404658790059058404/dvr/m/off24ha/?0411440465697761939438414404691735864119652h6rN-AOOhXZcPlp2UCV8Fg|F|52dfc02cdd2381059f57_605fd6ba-6320-4a5a-b10f-065e5363421d;
locksession=8171fe6881c99d4d95b53cd0dcf3acd9
Icy-MetaData: 1


HTTP/1.1 200 OK
Server: nginx
Date: Tue, 25 Aug 2015 01:23:03 GMT
Content-Type: application/vnd.apple.mpegurl
Content-Length: 750
Connection: close
Set-Cookie:
vssession=UPDcUGHKJXpc7LOg8kGzuQ14404660821688619614/dvr/m/off24ha/?0411440465697761939438414404691735864119652h6rN-AOOhXZcPlp2UCV8Fg|F|52dfc02cdd2381059f57_605fd6ba-6320-4a5a-b10f-065e5363421d;
Expires=Tue, 25 Aug 2015 01:28:02 GMT; Path=/dvr/m/off24ha/;
Vary: Accept-Encoding
Expires: Tue, 25 Aug 2015 01:23:05 GMT
Cache-Control: private, max-age=0, no-cache
Set-Cookie: locksession=8171fe6881c99d4d95b53cd0dcf3acd9; Path=/;
Max-Age=300

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:5
#EXT-X-MEDIA-SEQUENCE:171228
#EXTINF:5.,
off24ha_2564-1440465725-148687275600.ts
#EXTINF:5.,
off24ha_2564-1440465730-148687725600.ts
#EXTINF:5.,
off24ha_2564-1440465735-148688175600.ts
#EXTINF:5.,
off24ha_2564-1440465740-148688625600.ts
#EXTINF:5.,
off24ha_2564-1440465745-148689075600.ts
#EXTINF:5.,
off24ha_2564-1440465750-148689525600.ts
#EXTINF:5.,
off24ha_2564-1440465755-148689975600.ts
#EXTINF:5.,
off24ha_2564-1440465760-148690425600.ts
#EXTINF:5.,
off24ha_2564-1440465765-148690875600.ts
#EXTINF:5.,
off24ha_2564-1440465770-148691325600.ts
#EXTINF:5.,
off24ha_2564-1440465775-148691775600.ts
#EXTINF:5.,
off24ha_2564-1440465780-148692225600.ts


GET /dvr/m/off24ha/off24ha_2564/off24ha_2564-1440465730-148687725600.ts
HTTP/1.1
User-Agent: Kodi/14.1 (Windows NT 10.0; WOW64) App_Bitness/32
Version/14.1-Git:20150129-38e4046
Accept: */*
Connection: close
Host: live.hls.globo.com
Cookie: locksession=8171fe6881c99d4d95b53cd0dcf3acd9;
vssession=cR_S3dMoZipzPbX8eNy0Qw14404658790059058404/dvr/m/off24ha/?0411440465697761939438414404691735864119652h6rN-AOOhXZcPlp2UCV8Fg|F|52dfc02cdd2381059f57_605fd6ba-6320-4a5a-b10f-065e5363421d;
locksession=8171fe6881c99d4d95b53cd0dcf3acd9
Icy-MetaData: 1


HTTP/1.1 200 OK
Server: nginx
Date: Tue, 25 Aug 2015 01:23:03 GMT
Content-Type: video/MP2T
Content-Length: 1690308
Connection: close
Set-Cookie:
vssession=Psd_ZJE9VB33-uVq-64xew14404660830665574113/dvr/m/off24ha/?0411440465697761939438414404691735864119652h6rN-AOOhXZcPlp2UCV8Fg|F|52dfc02cdd2381059f57_605fd6ba-6320-4a5a-b10f-065e5363421d;
Expires=Tue, 25 Aug 2015 01:28:03 GMT; Path=/dvr/m/off24ha/;
Expires: Tue, 25 Aug 2015 01:23:02 GMT
Cache-Control: no-cache


GET /dvr/m/off24ha/off24ha_2564/off24ha_2564-1440465735-148688175600.ts
HTTP/1.1
User-Agent: Kodi/14.1 (Windows NT 10.0; WOW64) App_Bitness/32
Version/14.1-Git:20150129-38e4046
Accept: */*
Connection: close
Host: live.hls.globo.com
Cookie: locksession=8171fe6881