Where the segments listed in a HLS playlist are located?
I have the next HLS playlist: https://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/master-128000.m3u8.
It contains AAC audio file segments links.
File content is:
#EXTM3U
#EXT-X-VERSION:3
## Created with Z/IPStream R/2 v1.03.23
#EXT-X-MEDIA-SEQUENCE:2984548
#EXT-X-TARGETDURATION:6
#EXT-X-PROGRAM-DATE-TIME:2018-10-23T11:44:44Z
#EXTINF:5.99, no desc
01493/seg128000-02984548.aac
#EXTINF:5.99, no desc
01493/seg128000-02984549.aac
#EXTINF:5.99, no desc
01493/seg128000-02984550.aac
#EXTINF:5.99, no desc
01493/seg128000-02984551.aac
#EXTINF:5.99, no desc
01493/seg128000-02984552.aac
#EXTINF:5.99, no desc
01493/seg128000-02984553.aac
I can not understand where these segments are located. Could anybody explain me that? How can I reach each separate segment to play it, for instance, with NAudio MediaFoundationReader?
c# naudio hls internet-radio naudio-framework
add a comment |
I have the next HLS playlist: https://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/master-128000.m3u8.
It contains AAC audio file segments links.
File content is:
#EXTM3U
#EXT-X-VERSION:3
## Created with Z/IPStream R/2 v1.03.23
#EXT-X-MEDIA-SEQUENCE:2984548
#EXT-X-TARGETDURATION:6
#EXT-X-PROGRAM-DATE-TIME:2018-10-23T11:44:44Z
#EXTINF:5.99, no desc
01493/seg128000-02984548.aac
#EXTINF:5.99, no desc
01493/seg128000-02984549.aac
#EXTINF:5.99, no desc
01493/seg128000-02984550.aac
#EXTINF:5.99, no desc
01493/seg128000-02984551.aac
#EXTINF:5.99, no desc
01493/seg128000-02984552.aac
#EXTINF:5.99, no desc
01493/seg128000-02984553.aac
I can not understand where these segments are located. Could anybody explain me that? How can I reach each separate segment to play it, for instance, with NAudio MediaFoundationReader?
c# naudio hls internet-radio naudio-framework
They exist relative to the source document, in exactly the same way as links in HTML pages work. So: for instance01593/seg128000-03184874.aac
found in the document exists athttps://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/01593/seg128000-03184874.aac
– spender
Nov 6 '18 at 9:10
Thank you very much!
– Liidia
Nov 6 '18 at 9:24
FYI, this is an HLS playlist. It doesn't have anything to do with SHOUTcast.
– Brad
Nov 9 '18 at 20:53
Ok, I will read about HLS playlists. Thank you, Brad!
– Liidia
Nov 10 '18 at 10:17
add a comment |
I have the next HLS playlist: https://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/master-128000.m3u8.
It contains AAC audio file segments links.
File content is:
#EXTM3U
#EXT-X-VERSION:3
## Created with Z/IPStream R/2 v1.03.23
#EXT-X-MEDIA-SEQUENCE:2984548
#EXT-X-TARGETDURATION:6
#EXT-X-PROGRAM-DATE-TIME:2018-10-23T11:44:44Z
#EXTINF:5.99, no desc
01493/seg128000-02984548.aac
#EXTINF:5.99, no desc
01493/seg128000-02984549.aac
#EXTINF:5.99, no desc
01493/seg128000-02984550.aac
#EXTINF:5.99, no desc
01493/seg128000-02984551.aac
#EXTINF:5.99, no desc
01493/seg128000-02984552.aac
#EXTINF:5.99, no desc
01493/seg128000-02984553.aac
I can not understand where these segments are located. Could anybody explain me that? How can I reach each separate segment to play it, for instance, with NAudio MediaFoundationReader?
c# naudio hls internet-radio naudio-framework
I have the next HLS playlist: https://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/master-128000.m3u8.
It contains AAC audio file segments links.
File content is:
#EXTM3U
#EXT-X-VERSION:3
## Created with Z/IPStream R/2 v1.03.23
#EXT-X-MEDIA-SEQUENCE:2984548
#EXT-X-TARGETDURATION:6
#EXT-X-PROGRAM-DATE-TIME:2018-10-23T11:44:44Z
#EXTINF:5.99, no desc
01493/seg128000-02984548.aac
#EXTINF:5.99, no desc
01493/seg128000-02984549.aac
#EXTINF:5.99, no desc
01493/seg128000-02984550.aac
#EXTINF:5.99, no desc
01493/seg128000-02984551.aac
#EXTINF:5.99, no desc
01493/seg128000-02984552.aac
#EXTINF:5.99, no desc
01493/seg128000-02984553.aac
I can not understand where these segments are located. Could anybody explain me that? How can I reach each separate segment to play it, for instance, with NAudio MediaFoundationReader?
c# naudio hls internet-radio naudio-framework
c# naudio hls internet-radio naudio-framework
edited Nov 13 '18 at 7:59
Liidia
asked Nov 6 '18 at 8:33
LiidiaLiidia
165
165
They exist relative to the source document, in exactly the same way as links in HTML pages work. So: for instance01593/seg128000-03184874.aac
found in the document exists athttps://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/01593/seg128000-03184874.aac
– spender
Nov 6 '18 at 9:10
Thank you very much!
– Liidia
Nov 6 '18 at 9:24
FYI, this is an HLS playlist. It doesn't have anything to do with SHOUTcast.
– Brad
Nov 9 '18 at 20:53
Ok, I will read about HLS playlists. Thank you, Brad!
– Liidia
Nov 10 '18 at 10:17
add a comment |
They exist relative to the source document, in exactly the same way as links in HTML pages work. So: for instance01593/seg128000-03184874.aac
found in the document exists athttps://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/01593/seg128000-03184874.aac
– spender
Nov 6 '18 at 9:10
Thank you very much!
– Liidia
Nov 6 '18 at 9:24
FYI, this is an HLS playlist. It doesn't have anything to do with SHOUTcast.
– Brad
Nov 9 '18 at 20:53
Ok, I will read about HLS playlists. Thank you, Brad!
– Liidia
Nov 10 '18 at 10:17
They exist relative to the source document, in exactly the same way as links in HTML pages work. So: for instance
01593/seg128000-03184874.aac
found in the document exists at https://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/01593/seg128000-03184874.aac
– spender
Nov 6 '18 at 9:10
They exist relative to the source document, in exactly the same way as links in HTML pages work. So: for instance
01593/seg128000-03184874.aac
found in the document exists at https://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/01593/seg128000-03184874.aac
– spender
Nov 6 '18 at 9:10
Thank you very much!
– Liidia
Nov 6 '18 at 9:24
Thank you very much!
– Liidia
Nov 6 '18 at 9:24
FYI, this is an HLS playlist. It doesn't have anything to do with SHOUTcast.
– Brad
Nov 9 '18 at 20:53
FYI, this is an HLS playlist. It doesn't have anything to do with SHOUTcast.
– Brad
Nov 9 '18 at 20:53
Ok, I will read about HLS playlists. Thank you, Brad!
– Liidia
Nov 10 '18 at 10:17
Ok, I will read about HLS playlists. Thank you, Brad!
– Liidia
Nov 10 '18 at 10:17
add a comment |
1 Answer
1
active
oldest
votes
Due to the lack of leading /
, the resources exist at a location relative to the source document in exactly the same way as links in HTML pages work. So: for instance 01593/seg128000-03184874.aac
found in the document at https://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/master-128000.m3u8
exists at https://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/01593/seg128000-03184874.aac
.
A safe way of dealing with this is to use existing overloads on the Uri
class:
var m3u8Url =
"https://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/master-128000.m3u8"
var baseUri = new Uri(m3u8Url);
var resourceUri = new Uri(baseUri, "01493/seg128000-02984548.aac");
Console.WriteLine(resourceUri.AbsoluteUri);
Done this way, the resulting Urls will be assembled using the same logic as used by browsers, correctly dealing with relative (32724/foo
), local absolute (/32724/foo
) and fully qualified URLs (http://somehost/32724/foo
).
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53168294%2fwhere-the-segments-listed-in-a-hls-playlist-are-located%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Due to the lack of leading /
, the resources exist at a location relative to the source document in exactly the same way as links in HTML pages work. So: for instance 01593/seg128000-03184874.aac
found in the document at https://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/master-128000.m3u8
exists at https://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/01593/seg128000-03184874.aac
.
A safe way of dealing with this is to use existing overloads on the Uri
class:
var m3u8Url =
"https://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/master-128000.m3u8"
var baseUri = new Uri(m3u8Url);
var resourceUri = new Uri(baseUri, "01493/seg128000-02984548.aac");
Console.WriteLine(resourceUri.AbsoluteUri);
Done this way, the resulting Urls will be assembled using the same logic as used by browsers, correctly dealing with relative (32724/foo
), local absolute (/32724/foo
) and fully qualified URLs (http://somehost/32724/foo
).
add a comment |
Due to the lack of leading /
, the resources exist at a location relative to the source document in exactly the same way as links in HTML pages work. So: for instance 01593/seg128000-03184874.aac
found in the document at https://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/master-128000.m3u8
exists at https://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/01593/seg128000-03184874.aac
.
A safe way of dealing with this is to use existing overloads on the Uri
class:
var m3u8Url =
"https://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/master-128000.m3u8"
var baseUri = new Uri(m3u8Url);
var resourceUri = new Uri(baseUri, "01493/seg128000-02984548.aac");
Console.WriteLine(resourceUri.AbsoluteUri);
Done this way, the resulting Urls will be assembled using the same logic as used by browsers, correctly dealing with relative (32724/foo
), local absolute (/32724/foo
) and fully qualified URLs (http://somehost/32724/foo
).
add a comment |
Due to the lack of leading /
, the resources exist at a location relative to the source document in exactly the same way as links in HTML pages work. So: for instance 01593/seg128000-03184874.aac
found in the document at https://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/master-128000.m3u8
exists at https://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/01593/seg128000-03184874.aac
.
A safe way of dealing with this is to use existing overloads on the Uri
class:
var m3u8Url =
"https://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/master-128000.m3u8"
var baseUri = new Uri(m3u8Url);
var resourceUri = new Uri(baseUri, "01493/seg128000-02984548.aac");
Console.WriteLine(resourceUri.AbsoluteUri);
Done this way, the resulting Urls will be assembled using the same logic as used by browsers, correctly dealing with relative (32724/foo
), local absolute (/32724/foo
) and fully qualified URLs (http://somehost/32724/foo
).
Due to the lack of leading /
, the resources exist at a location relative to the source document in exactly the same way as links in HTML pages work. So: for instance 01593/seg128000-03184874.aac
found in the document at https://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/master-128000.m3u8
exists at https://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/01593/seg128000-03184874.aac
.
A safe way of dealing with this is to use existing overloads on the Uri
class:
var m3u8Url =
"https://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/master-128000.m3u8"
var baseUri = new Uri(m3u8Url);
var resourceUri = new Uri(baseUri, "01493/seg128000-02984548.aac");
Console.WriteLine(resourceUri.AbsoluteUri);
Done this way, the resulting Urls will be assembled using the same logic as used by browsers, correctly dealing with relative (32724/foo
), local absolute (/32724/foo
) and fully qualified URLs (http://somehost/32724/foo
).
answered Nov 6 '18 at 9:47
spenderspender
86.4k21157280
86.4k21157280
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53168294%2fwhere-the-segments-listed-in-a-hls-playlist-are-located%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
They exist relative to the source document, in exactly the same way as links in HTML pages work. So: for instance
01593/seg128000-03184874.aac
found in the document exists athttps://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/01593/seg128000-03184874.aac
– spender
Nov 6 '18 at 9:10
Thank you very much!
– Liidia
Nov 6 '18 at 9:24
FYI, this is an HLS playlist. It doesn't have anything to do with SHOUTcast.
– Brad
Nov 9 '18 at 20:53
Ok, I will read about HLS playlists. Thank you, Brad!
– Liidia
Nov 10 '18 at 10:17