On 2022-04-13T01:42:39+0200, Reino Wijnsma <rwijn...@xs4all.nl> wrote: > ...and I don't understand how something like > "http://188.17.143.39/hls/CH_R04_DOMASHNY/variant.m3u8?version=2" would > translate to... > > On 2022-04-12T17:54:32+0200, Bo Berglund <bo.bergl...@gmail.com> wrote: >> https://nbcnews3.akamaized.net/hls/live/723429/NBCNewsNowa418c506/clear/hdntl=exp=1649865178~acl=%2f*~data=hdntl~hmac=5480897632ddf98d23bf870098333af5055752c54d28764b8c894711086d1266/VIDEO_1_4596000.m3u8
Well,... On 2022-04-13T23:49:26+0200, Reino Wijnsma <rwijn...@xs4all.nl> wrote: > Alternatively I could have a look on a much newer system of one of my family > members ...I've found out that "http://188.17.143.39/hls/CH_R04_DOMASHNY/variant.m3u8?version=2" (from the iframe's HTML-source) has nothing to do with the akamaized-url. Very strange. In the network-traffic I've found 2 different JSON api endpoints that house the bare m3u8-url: $ xidel -s "https://api-leap.nbcsports.com/feeds/assets/2007524?application=NBCNews&format=nbc-player&platform=desktop" \ -e '$json/(videoSources)()/cdnSources/(primary)()/sourceUrl' https://nbcnews3.akamaized.net/hls/live/723429/NBCNewsNowa418c506/clear/master.m3u8 $ xidel -s "https://stream.nbcnews.com/data/live_sources_2007524.json" \ -e '$json/(videoSources)()/sourceUrl' \ -e '$json/(videoSources)()/cdnSources/(primary)()/url' https://nbcnews3.akamaized.net/hls/live/723429/NBCNewsNowa418c506/clear/master.m3u8 https://nbcnews3.akamaized.net/hls/live/723429/NBCNewsNowa418c506/clear/master.m3u8 I have no idea where the identifier 2007524 is coming from though! It's not in the HTML-source of "http://www.freeintertv.com/view/id-2308" or its iframe. I couldn't find it anywhere else. It must be the program-id of the NBC livestream. This HLS manifest doesn't work just yet: $ xidel -s "https://stream.nbcnews.com/data/live_sources_2007524.json" \ -f '{"url":$json/(videoSources)()/sourceUrl,"error-handling":"xxx=accept"}' \ -e '$headers[1]' HTTP/1.1 403 Forbidden The m3u8-url needs to be sent to "https://tokens.playmakerservices.com" in a POST-request: $ xidel -s "https://stream.nbcnews.com/data/live_sources_2007524.json" -e '$json/(videoSources)()/{"requestorId":"nbcnews","pid":pid,"application":"NBCSports","version":"v1","platform":"desktop","token":"","resourceId":"","inPath":"false","authenticationType":"unauth","cdn":"akamai","url":sourceUrl}' { "requestorId": "nbcnews", "pid": "2007524", "application": "NBCSports", "version": "v1", "platform": "desktop", "token": "", "resourceId": "", "inPath": "false", "authenticationType": "unauth", "cdn": "akamai", "url": "https://nbcnews3.akamaized.net/hls/live/723429/NBCNewsNowa418c506/clear/master.m3u8" } $ xidel -s "https://stream.nbcnews.com/data/live_sources_2007524.json" -e 'serialize($json/(videoSources)()/{"requestorId":"nbcnews","pid":pid,"application":"NBCSports","version":"v1","platform":"desktop","token":"","resourceId":"","inPath":"false","authenticationType":"unauth","cdn":"akamai","url":sourceUrl},{"method":"json"})' {"requestorId":"nbcnews","pid":"2007524","application":"NBCSports","version":"v1","platform":"desktop","token":"","resourceId":"","inPath":"false","authenticationType":"unauth","cdn":"akamai","url":"https:\/\/nbcnews3.akamaized.net\/hls\/live\/723429\/NBCNewsNowa418c506\/clear\/master.m3u8"} $ xidel -s "https://stream.nbcnews.com/data/live_sources_2007524.json" -e 'x:request({"post":serialize($json/(videoSources)()/{"requestorId":"nbcnews","pid":pid,"application":"NBCSports","version":"v1","platform":"desktop","token":"","resourceId":"","inPath":"false","authenticationType":"unauth","cdn":"akamai","url":sourceUrl},{"method":"json"}),"url":"https://tokens.playmakerservices.com"})/json' { "akamai": [ { "token": "hdnts=st=1650111897~exp=1650112017~acl=/hls/live/723429/NBCNewsNowa418c506/clear/*~hmac=bcab5244534ea41b8b5c585c67805765f582cc5386ab89665833c9e8651c16d0", "tokenizedUrl": "https://nbcnews3.akamaized.net/hls/live/723429/NBCNewsNowa418c506/clear/master.m3u8?hdnts=st=1650111897~exp=1650112017~acl=/hls/live/723429/NBCNewsNowa418c506/clear/*~hmac=bcab5244534ea41b8b5c585c67805765f582cc5386ab89665833c9e8651c16d0", "sourceUrl": "https://nbcnews3.akamaized.net/hls/live/723429/NBCNewsNowa418c506/clear/master.m3u8" } ] } $ ffmpeg -hide_banner -i "$(xidel -s "https://stream.nbcnews.com/data/live_sources_2007524.json" -e 'x:request({"post":serialize($json/(videoSources)()/{"requestorId":"nbcnews","pid":pid,"application":"NBCSports","version":"v1","platform":"desktop","token":"","resourceId":"","inPath":"false","authenticationType":"unauth","cdn":"akamai","url":sourceUrl},{"method":"json"}),"url":"https://tokens.playmakerservices.com"})/json//tokenizedUrl')" [...] Input #0, hls, from 'https://nbcnews3.akamaized.net/hls/live/723429/NBCNewsNowa418c506/clear/master.m3u8?hdnts=st=1650112296~exp=1650112416~acl=/hls/live/723429/NBCNewsNowa418c506/clear/*~hmac=4f01d8d10fecf43c9419c9bd6923d64bc4c8df1885d30ba038dbd4205f555ac4': Duration: N/A, start: 81275.964722, bitrate: N/A Program 0 Metadata: variant_bitrate : 8238624 Stream #0:0: Video: h264 ([27][0][0][0] / 0x001B), none, 90k tbr, 90k tbn Metadata: variant_bitrate : 8238624 Stream #0:1: Audio: aac ([15][0][0][0] / 0x000F), 0 channels, fltp Metadata: variant_bitrate : 8238624 Program 1 Metadata: variant_bitrate : 8238624 Stream #0:2: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 1920x1080, Closed Captions, 29.97 fps, 29.97 tbr, 90k tbn Metadata: variant_bitrate : 8238624 Stream #0:3: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp Metadata: variant_bitrate : 8238624 [...] Prettified query to extract the m3u8-url: $ xidel -s "https://stream.nbcnews.com/data/live_sources_2007524.json" -e ' x:request({ "post":serialize( $json/(videoSources)()/{ "requestorId":"nbcnews", "pid":pid, "application":"NBCSports", "version":"v1", "platform":"desktop", "token":"", "resourceId":"", "inPath":"false", "authenticationType":"unauth", "cdn":"akamai", "url":sourceUrl }, {"method":"json"} ), "url":"https://tokens.playmakerservices.com" })/json//tokenizedUrl ' On 2022-04-14T10:26:56+0200, Bo Berglund <bo.bergl...@gmail.com> wrote: > Could it be that it stays working as long as someone (me) keeps using it at > regular intervals? I doubt it. With the help of my hobby-project's m3u8-to-json() function <https://github.com/Reino17/xivid/blob/master/xivid.xqm#L34-L106>... $ xidel -s --module=xivid.xqm "https://stream.nbcnews.com/data/live_sources_2007524.json" -e 'x:request({"post":serialize($json/(videoSources)()/{"requestorId":"nbcnews","pid":pid,"application":"NBCSports","version":"v1","platform":"desktop","token":"","resourceId":"","inPath":"false","authenticationType":"unauth","cdn":"akamai","url":sourceUrl},{"method":"json"}),"url":"https://tokens.playmakerservices.com"})/xivid:m3u8-to-json(json//tokenizedUrl)' [ { "id": "hls-0", "format": "m3u8[manifest]", "url": "https://nbcnews3.akamaized.net/hls/live/723429/NBCNewsNowa418c506/clear/master.m3u8?hdnts=st=1650112928~exp=1650113048~acl=/hls/live/723429/NBCNewsNowa418c506/clear/*~hmac=be7299794a2ff43e94c14cce1729f28193715b47ce5b57016cee51a3ddd4238d" }, [...] { "id": "hls-15", "format": "m3u8[h264+aac]", "resolution": "1920x1080@29.97fps", "bitrate": "8239kbps", "url": "https://nbcnews3.akamaized.net/hls/live/723429/NBCNewsNowa418c506/clear/hdntl=exp=1650199328~acl=%2f*~data=hdntl~hmac=f363e78953e6afddd2e3f75613c2a2aa5cc9e7dbca846aab9f9167f5501dca3e/VIDEO_0_6596000.m3u8" }, { "id": "hls-16", "format": "m3u8[h264+aac]", "resolution": "1920x1080@29.97fps", "bitrate": "8239kbps", "url": "https://nbcnews3.akamaized.net/hls/live/723429-b/NBCNewsNowa418c506/clear/hdntl=exp=1650199328~acl=%2f*~data=hdntl~hmac=f363e78953e6afddd2e3f75613c2a2aa5cc9e7dbca846aab9f9167f5501dca3e/VIDEO_0_6596000.m3u8" } ] ...you can see that the m3u8-url for the HLS manifest is only valid for 2 minutes (1650113048 - 1650112928 = 120). The m3u8-url for the individual videostreams on the other hand is valid for 24 hours (1650113048 - 1650199328 = 86400 / 60 / 60 = 24). -- Reino _______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".