From 5b47807317017c88233a6875cf5b5818f02a85ca Mon Sep 17 00:00:00 2001 From: Johan Lautakoski Date: Thu, 23 Mar 2023 14:38:55 +0100 Subject: [PATCH] feat: support for VODs with subtitles (#90) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Support for VOD with subtitles. A dummy URL can be provided as a fallback when no subtitle segments are available --------- Co-authored-by: Jonas Birmé removed unnecessary files from testvectors and added a new test added support for starting without subs and added dummy fallback on all vods with subs enabled added bugfix to aduio solved issue regarind deltaTime/playhead position solved bug regarding overwrighting and shifting of subtitltes chore: removed mac OS file chore: remove mac OS file fixed code review comments updated documentation forgot to account for capital letters and added a shouldContainSubtitleCheck removed unused varible --- .gitignore | 2 + API.md | 96 +- README.md | 12 +- index.js | 2021 ++++++++++++----- spec/hlsvod_audio_spec.js | 68 + spec/hlsvod_subtitles_spec.js | 649 ++++++ testvectors/hls_subs/b160000-english.m3u8 | 224 ++ testvectors/hls_subs/b2962000-video.m3u8 | 223 ++ testvectors/hls_subs/chinese-ed.m3u8 | 13 + testvectors/hls_subs/french-ed.m3u8 | 13 + testvectors/hls_subs/master.m3u8 | 7 + testvectors/hls_subs2/master.m3u8 | 7 + testvectors/hls_subs2/subs.m3u8 | 1632 +++++++++++++ testvectors/hls_subs2/video.m3u8 | 1665 ++++++++++++++ testvectors/hls_subs3/index.m3u8 | 7 + testvectors/hls_subs3/stream_0/index.m3u8 | 23 + testvectors/hls_subs3/subs/sub.m3u8 | 14 + testvectors/hls_subs4/index.m3u8 | 8 + testvectors/hls_subs4/stream_0/index.m3u8 | 23 + testvectors/hls_subs4/subs/sub.m3u8 | 20 + .../hls_subs_no_subs/b160000-english.m3u8 | 224 ++ .../hls_subs_no_subs/b2962000-video.m3u8 | 223 ++ testvectors/hls_subs_no_subs/master.m3u8 | 5 + testvectors/hls_widevine/index.m3u8 | 15 +- 24 files changed, 6571 insertions(+), 623 deletions(-) create mode 100644 spec/hlsvod_audio_spec.js create mode 100644 spec/hlsvod_subtitles_spec.js create mode 100644 testvectors/hls_subs/b160000-english.m3u8 create mode 100644 testvectors/hls_subs/b2962000-video.m3u8 create mode 100644 testvectors/hls_subs/chinese-ed.m3u8 create mode 100644 testvectors/hls_subs/french-ed.m3u8 create mode 100644 testvectors/hls_subs/master.m3u8 create mode 100644 testvectors/hls_subs2/master.m3u8 create mode 100644 testvectors/hls_subs2/subs.m3u8 create mode 100644 testvectors/hls_subs2/video.m3u8 create mode 100644 testvectors/hls_subs3/index.m3u8 create mode 100644 testvectors/hls_subs3/stream_0/index.m3u8 create mode 100644 testvectors/hls_subs3/subs/sub.m3u8 create mode 100644 testvectors/hls_subs4/index.m3u8 create mode 100644 testvectors/hls_subs4/stream_0/index.m3u8 create mode 100644 testvectors/hls_subs4/subs/sub.m3u8 create mode 100644 testvectors/hls_subs_no_subs/b160000-english.m3u8 create mode 100644 testvectors/hls_subs_no_subs/b2962000-video.m3u8 create mode 100644 testvectors/hls_subs_no_subs/master.m3u8 diff --git a/.gitignore b/.gitignore index c9106a7..7581eea 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ node_modules .nyc_output +.DS_Store +.vscode diff --git a/API.md b/API.md index aa59fae..aec9932 100644 --- a/API.md +++ b/API.md @@ -14,15 +14,21 @@ * [.getLiveMediaSequenceSegments(seqIdx)](#HLSVod+getLiveMediaSequenceSegments) * [.getMediaSegments()](#HLSVod+getMediaSegments) * [.getLiveMediaSequenceAudioSegments(audioGroupId, audioLanguage, seqIdx)](#HLSVod+getLiveMediaSequenceAudioSegments) + * [.getLiveMediaSequenceSubtitleSegments(subtitleGroupId, subtitleLanguage, seqIdx)](#HLSVod+getLiveMediaSequenceSubtitleSegments) * [.getBandwidths()](#HLSVod+getBandwidths) - * [.getLiveMediaSequencesCount()](#HLSVod+getLiveMediaSequencesCount) + * [.getSubtitleGroups(all?)](#HLSVod+getSubtitleGroups) + * [.getSubtitleLangsForSubtitleGroup(groupId, all?)](#HLSVod+getSubtitleLangsForSubtitleGroup) + * [.getLiveMediaSequencesCount(media?)](#HLSVod+getLiveMediaSequencesCount) * [.getLastSequenceMediaSequenceValue()](#HLSVod+getLastSequenceMediaSequenceValue) * [.getLastSequenceMediaSequenceValueAudio()](#HLSVod+getLastSequenceMediaSequenceValueAudio) + * [.getLastSequenceMediaSequenceValueSubtitle()](#HLSVod+getLastSequenceMediaSequenceValueSubtitle) * [.getLiveMediaSequences(offset, bandwidth, seqIdx, discOffset, padding, forceTargetDuration)](#HLSVod+getLiveMediaSequences) - * [.getLiveMediaAudioSequences()](#HLSVod+getLiveMediaAudioSequences) + * [.getLiveMediaAudioSequences(offset, bandwidth, seqIdx, discOffset, padding, forceTargetDuration)](#HLSVod+getLiveMediaAudioSequences) + * [.getLiveMediaSubtitleSequences(offset, bandwidth, seqIdx, discOffset, padding, forceTargetDuration)](#HLSVod+getLiveMediaSubtitleSequences) * [.getUsageProfiles()](#HLSVod+getUsageProfiles) * [.getLastDiscontinuity()](#HLSVod+getLastDiscontinuity) * [.getLastDiscontinuityAudio()](#HLSVod+getLastDiscontinuityAudio) + * [.getLastDiscontinuitySubtitle()](#HLSVod+getLastDiscontinuitySubtitle) * [.getDeltaTimes()](#HLSVod+getDeltaTimes) * [.getPlayheadPositions()](#HLSVod+getPlayheadPositions) * [.releasePreviousVod()](#HLSVod+releasePreviousVod) @@ -136,15 +142,57 @@ Get all audio segments (duration, uri) for a specific media sequence | audioLanguage | string | audio language | | seqIdx | number | media sequence index (first is 0) | +**Kind**: instance method of [HLSVod](#HLSVod) + + +### hlsVod.getLiveMediaSequenceSubtitleSegments(subtitleGroupId, subtitleLanguage, seqIdx) +Get all subtitle segments (duration, uri) for a specific media sequence + +**Kind**: instance method of [HLSVod](#HLSVod) + +| Param | Type | Description | +| --- | --- | --- | +| subtitleGroupId | string | subtitle group Id | +| subtitleLanguage | string | subtitle language | +| seqIdx | number | media sequence index (first is 0) | + +**Kind**: instance method of [HLSVod](#HLSVod) ### hlsVod.getBandwidths() Get the available bandwidths for this VOD +**Kind**: instance method of [HLSVod](#HLSVod) + + +### hlsVod.getSubtitleGroups(all?) +Get the available subtitle group for this VOD + +there exists a default group with a lang used to create dummy segments which can be filtered using all parameter + +| Param | Type | Description | +| --- | --- | --- | +| all | boolean | used to determine if you want all the langs or not, false by default | + +**Kind**: instance method of [HLSVod](#HLSVod) + + +### hlsVod.getSubtitleLangsForSubtitleGroup(groupId) +Get the all language for a specific groupId + +| Param | Type | Description | +| --- | --- | --- | +| groupId | string | subtitle group Id | + **Kind**: instance method of [HLSVod](#HLSVod) -### hlsVod.getLiveMediaSequencesCount() +### hlsVod.getLiveMediaSequencesCount(media?) + +| Param | Type | Description | +| --- | --- | --- | +| media | string | pass this variable to select video, audio or subtitle. If omitted video is assumed | + Get the number of media sequences for this VOD **Kind**: instance method of [HLSVod](#HLSVod) @@ -160,6 +208,22 @@ Get the media-sequence value for the last media sequence of this VOD Get the media-sequence value for the last audio media sequence of this VOD **Kind**: instance method of [HLSVod](#HLSVod) + + +### hlsVod.getLastSequenceMediaSequenceValueSubtitle() +Get the media-sequence value for the last subtitle media sequence of this VOD + +**Kind**: instance method of [HLSVod](#HLSVod) + +| Param | Type | Description | +| --- | --- | --- | +| offset | number | add this offset to all media sequences in the EXT-X-MEDIA-SEQUENCE tag | +| bandwidth | string | | +| seqIdx | number | | +| discOffset | number | add this offset to all discontinuity sequences in the EXT-X-DISCONTINUITY-SEQUENCE tag | +| padding | number | add extra seconds on the EXT-X-TARGETDURATION | +| forceTargetDuration | number | enforce a fixed EXT-X-TARGETDURATION | + ### hlsVod.getLiveMediaSequences(offset, bandwidth, seqIdx, discOffset, padding, forceTargetDuration) @@ -178,10 +242,28 @@ Get the HLS live media sequence for a specific media sequence and bandwidth -### hlsVod.getLiveMediaAudioSequences() +### hlsVod.getLiveMediaAudioSequences(offset, bandwidth, seqIdx, discOffset, padding, forceTargetDuration) Gets a hls/makes m3u8-file with all of the correct audio segments belonging to a given groupID & language for a particular sequence. +**Kind**: instance method of [HLSVod](#HLSVod) + +| Param | Type | Description | +| --- | --- | --- | +| offset | number | add this offset to all media sequences in the EXT-X-MEDIA-SEQUENCE tag | +| bandwidth | string | | +| seqIdx | number | | +| discOffset | number | add this offset to all discontinuity sequences in the EXT-X-DISCONTINUITY-SEQUENCE tag | +| padding | number | add extra seconds on the EXT-X-TARGETDURATION | +| forceTargetDuration | number | enforce a fixed EXT-X-TARGETDURATION | + + + + +### hlsVod.getLiveMediaSubtitleSequences(offset, bandwidth, seqIdx, discOffset, padding, forceTargetDuration) +Gets a hls/makes m3u8-file with all of the correct subtitle segments +belonging to a given groupID & language for a particular sequence. + **Kind**: instance method of [HLSVod](#HLSVod) @@ -200,6 +282,12 @@ Get the last discontinuity sequence number ### hlsVod.getLastDiscontinuityAudio() Get the last audio discontinuity sequence number +**Kind**: instance method of [HLSVod](#HLSVod) + + +### hlsVod.getLastDiscontinuitySubtitle() +Get the last subtitle discontinuity sequence number + **Kind**: instance method of [HLSVod](#HLSVod) diff --git a/README.md b/README.md index 105060f..e213d83 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ npm install --save @eyevinn/hls-vodtolive ## Usage -This library load and parses HLS VOD manifests and generates HLS Live manifests. The example below loads one HLS VOD and then another HLS VOD that is appendend to the first one. The `getLiveMediaSequences(mediaseq)` returns HLS Live media sequence slices, and in the example below outputs the last live media sequence representation of the first VOD. +This library load and parses HLS VOD manifests and generates HLS Live manifests. The example below loads one HLS VOD and then another HLS VOD that is appended to the first one. The `getLiveMediaSequences(mediaseq)` returns HLS Live media sequence slices, and in the example below outputs the last live media sequence representation of the first VOD. ``` const HLSVod = require('@eyevinn/hls-vodtolive'); @@ -116,6 +116,16 @@ segB2.ts segB3.ts ``` + +To use this library with subtitles the following options are required to be supplied when creating a new instance of HLSVod + ``` +shouldContainSubtitles: true, // says that the loaded VOD should contain subtitles and to create dummy if missing. +expectedSubtitleTracks: subtitleTracks, // says that the loaded VOD should contain subtitles and to create dummy if missing +dummySubtitleEndpoint: "/dummysubs.vtt", // it should link to an endpoint that will serve empty vtt files. +subtitleSliceEndpoint: "/subtitlevtt.vtt", // it should link to an endpoint that can splice and vtt file and serve it in case a VOD contains + subtitle segments longer than video segments. +``` + # Documentation - [API Documentation](API.md) diff --git a/index.js b/index.js index 641498e..b64493b 100644 --- a/index.js +++ b/index.js @@ -18,10 +18,14 @@ class HLSVod { this.masterManifestUri = vodManifestUri; this.segments = {}; this.audioSegments = {}; + this.subtitleSegments = {}; this.mediaSequences = []; this.SEQUENCE_DURATION = process.env.SEQUENCE_DURATION ? process.env.SEQUENCE_DURATION : 60; + this.DEFAULT_SUBTITLE_GROUP_ID = "defaultSubtitleGroupId"; + this.DEFAULT_SUBTITLE_LANGUAGE = "defaultSubtitleLanguage"; this.targetDuration = {}; this.targetAudioDuration = {}; + this.targetSubtitleDuration = {}; this.previousVod = null; this.usageProfile = []; this.segmentsInitiated = {}; @@ -32,12 +36,15 @@ class HLSVod { this.usageProfileMappingRev = null; this.discontinuities = {}; this.discontinuitiesAudio = {}; + this.discontinuitiesSubtitle = {}; this.mediaSequenceValues = {}; this.mediaSequenceValuesAudio = {}; + this.mediaSequenceValuesSubtitle = {}; this.rangeMetadata = null; this.matchedBandwidths = {}; this.deltaTimes = []; this.deltaTimesAudio = []; + this.deltaTimesSubtitle = []; this.header = header; this.lastUsedDiscSeq = null; this.sequenceAlwaysContainNewSegments = false; @@ -47,10 +54,23 @@ class HLSVod { if (opts && opts.forcedDemuxMode) { this.forcedDemuxMode = opts.forcedDemuxMode; } + if (opts && opts.dummySubtitleEndpoint) { + this.dummySubtitleEndpoint = opts.dummySubtitleEndpoint; + } + if (opts && opts.subtitleSliceEndpoint) { + this.subtitleSliceEndpoint = opts.subtitleSliceEndpoint; + } + if (opts && opts.shouldContainSubtitles) { + this.shouldContainSubtitles = opts.shouldContainSubtitles; + } + if (opts && opts.expectedSubtitleTracks) { + this.expectedSubtitleTracks = opts.expectedSubtitleTracks; + } this.videoSequencesCount = 0; this.audioSequencesCount = 0; this.defaultAudioGroupAndLang = null; - this.mediaStartExecessTime = 0; + this.SubtitleSequencesCount = 0; + this.mediaStartExcessTime = 0; this.audioCodecsMap = {}; } @@ -59,10 +79,14 @@ class HLSVod { masterManifestUri: this.masterManifestUri, segments: this.segments, audioSegments: this.audioSegments, + subtitleSegments: this.subtitleSegments, + shouldContainSubtitles: this.shouldContainSubtitles, + expectedSubtitleTracks: this.expectedSubtitleTracks, mediaSequences: this.mediaSequences, SEQUENCE_DURATION: this.SEQUENCE_DURATION, targetDuration: this.targetDuration, targetAudioDuration: this.targetAudioDuration, + targetSubtitleDuration: this.targetSubtitleDuration, previousVod: this.previousVod ? this.previousVod.toJSON() : null, usageProfile: this.usageProfile, segmentsInitiated: this.segmentsInitiated, @@ -73,17 +97,22 @@ class HLSVod { usageProfileMappingRev: this.usageProfileMappingRev, discontinuities: this.discontinuities, discontinuitiesAudio: this.discontinuitiesAudio, + discontinuitiesSubtitle: this.discontinuitiesSubtitle, deltaTimes: this.deltaTimes, deltaTimesAudio: this.deltaTimesAudio, + deltaTimesSubtitle: this.deltaTimesSubtitle, header: this.header, lastUsedDiscSeq: this.lastUsedDiscSeq, mediaSequenceValues: this.mediaSequenceValues, mediaSequenceValuesAudio: this.mediaSequenceValuesAudio, sequenceAlwaysContainNewSegments: this.sequenceAlwaysContainNewSegments, forcedDemuxMode: this.forcedDemuxMode, + dummySubtitleEndpoint: this.dummySubtitleEndpoint, + subtitleSliceEndpoint: this.subtitleSliceEndpoint, videoSequencesCount: this.videoSequencesCount, audioSequencesCount: this.audioSequencesCount, - mediaStartExecessTime: this.mediaStartExecessTime, + subtitleSequencesCount: this.subtitleSegments, + mediaStartExcessTime: this.mediaStartExcessTime, audioCodecsMap: this.audioCodecsMap, }; return JSON.stringify(serialized); @@ -94,10 +123,14 @@ class HLSVod { this.masterManifestUri = de.masterManifestUri; this.segments = de.segments; this.audioSegments = de.audioSegments; + this.subtitleSegments = de.subtitleSegments; + this.shouldContainSubtitles = de.shouldContainSubtitles; + this.expectedSubtitleTracks = de.expectedSubtitleTracks; this.mediaSequences = de.mediaSequences; this.SEQUENCE_DURATION = de.SEQUENCE_DURATION; this.targetDuration = de.targetDuration; this.targetAudioDuration = de.targetAudioDuration; + this.targetSubtitleDuration = de.targetSubtitleDuration; const prevVod = new HLSVod(); this.previousVod = null; if (de.previousVod) { @@ -112,38 +145,53 @@ class HLSVod { this.usageProfileMappingRev = de.usageProfileMappingRev; this.discontinuities = de.discontinuities; this.discontinuitiesAudio = de.discontinuitiesAudio; + this.discontinuitiesSubtitle = de.discontinuitiesSubtitle; this.deltaTimes = de.deltaTimes; this.deltaTimesAudio = de.deltaTimesAudio; + this.deltaTimesSubtitle = de.deltaTimesSubtitle; this.header = de.header; if (de.lastUsedDiscSeq) { this.lastUsedDiscSeq = de.lastUsedDiscSeq; } this.mediaSequenceValues = de.mediaSequenceValues; this.mediaSequenceValuesAudio = de.mediaSequenceValuesAudio; + this.mediaSequenceValuesSubtitle = de.mediaSequenceValuesSubtitle; this.sequenceAlwaysContainNewSegments = de.sequenceAlwaysContainNewSegments; this.forcedDemuxMode = de.forcedDemuxMode; + this.dummySubtitleEndpoint = de.dummySubtitleEndpoint; + this.subtitleSliceEndpoint = de.subtitleSliceEndpoint; this.videoSequencesCount = de.videoSequencesCount; this.audioSequencesCount = de.audioSequencesCount; - this.mediaStartExecessTime = de.mediaStartExecessTime; + this.subtitleSequencesCount = de.subtitleSequencesCount + this.mediaStartExcessTime = de.mediaStartExcessTime; this.audioCodecsMap = de.audioCodecsMap; } /** * Load and parse the HLS VOD */ - load(_injectMasterManifest, _injectMediaManifest, _injectAudioManifest) { + load(_injectMasterManifest, _injectMediaManifest, _injectAudioManifest, _injectSubtitleManifest) { return new Promise((resolve, reject) => { const parser = m3u8.createStream(); parser.on("m3u", (m3u) => { let mediaManifestPromises = []; let audioManifestPromises = []; + let subtitleManifestPromises = []; let baseUrl; const m = this.masterManifestUri.match("^(.*)/.*?$"); if (m) { baseUrl = m[1] + "/"; } const HAS_AUDIO_DEFAULTS = this.defaultAudioGroupAndLang === null ? false : true; + if (this.shouldContainSubtitles) { + if (!this.subtitleSegments[this.DEFAULT_SUBTITLE_GROUP_ID]) { + this.subtitleSegments[this.DEFAULT_SUBTITLE_GROUP_ID] = {}; + } + if (!this.subtitleSegments[this.DEFAULT_SUBTITLE_GROUP_ID][this.DEFAULT_SUBTITLE_LANGUAGE]) { + this.subtitleSegments[this.DEFAULT_SUBTITLE_GROUP_ID][this.DEFAULT_SUBTITLE_LANGUAGE] = []; + } + } if (this.previousVod && this.previousVod.getBandwidths().length === m3u.items.StreamItem.length) { debug(`Previous VOD bandwidths matches amount of current. A mapping is possible`); const previousBandwidths = this.previousVod.getBandwidths().sort((a, b) => a - b); @@ -160,6 +208,7 @@ class HLSVod { } let audioGroups = {}; + let subtitleGroups = {}; for (let i = 0; i < m3u.items.StreamItem.length; i++) { const streamItem = m3u.items.StreamItem[i]; @@ -177,7 +226,7 @@ class HLSVod { } this.usageProfile.push(usageProfile); - // Do not add if it is a variant included in an audio group as it will be loaded and parsed seperate + // Do not add if it is a variant included in an audio group as it will be loaded and parsed separate if (!m3u.items.MediaItem.find((mediaItem) => mediaItem.get("type") === "AUDIO" && mediaItem.get("uri") == streamItem.get("uri"))) { if (streamItem.get("codecs") !== "mp4a.40.2") { mediaManifestPromises.push(this._loadMediaManifest(mediaManifestUrl, streamItem.get("bandwidth"), _injectMediaManifest)); @@ -209,7 +258,7 @@ class HLSVod { }); // # Find all langs amongst the mediaItems that have this group id. // # It extracts each mediaItems language attribute value. - // # ALSO initialize in this.audioSegments a lang. property whos value is an array [{seg1}, {seg2}, ...]. + // # ALSO initialize in this.audioSegments a lang. property who's value is an array [{seg1}, {seg2}, ...]. let audioLanguages = audioGroupItems.map((item) => { let itemLang; if (!item.get("language")) { @@ -300,11 +349,112 @@ class HLSVod { } else if (this.forcedDemuxMode) { reject(new Error("The vod is not a demux vod")); } + + if (streamItem.get("subtitles") && this.shouldContainSubtitles) { + if (!this.subtitleSliceEndpoint) { + reject(new Error("Missing subtitle slice URL")); + continue; + } + if (!this.expectedSubtitleTracks) { + reject(new Error("There are no expected subtitle tracks")); + continue; + } + let subtitleGroupId = streamItem.get("subtitles"); + if (!this.subtitleSegments[subtitleGroupId]) { + this.subtitleSegments[subtitleGroupId] = {}; + } + debug(`Lookup media item for '${subtitleGroupId}'`); + // # Needed for the case when loading after another VOD. + const previousVODLanguages = Object.keys(this.subtitleSegments[subtitleGroupId]); + + let subtitleGroupItems = m3u.items.MediaItem.filter((item) => { + return item.get("type") === "SUBTITLES" && item.get("group-id") === subtitleGroupId; + }); + // # Find all langs amongst the mediaItems that have this group id. + // # It extracts each mediaItems language attribute value. + // # ALSO initialize in this.subtitleSegments a lang. property who's value is an array [{seg1}, {seg2}, ...]. + let subtitleLanguages = subtitleGroupItems.map((item) => { + let itemLang; + if (!item.get("language")) { + itemLang = item.get("name"); + } else { + itemLang = item.get("language"); + } + if (!this.expectedSubtitleTracks.find((track) => track.language.toLowerCase() === itemLang.toLowerCase() || track.name.toLowerCase() === itemLang.toLowerCase())) { + console.log("not found") + return; + } + + // Initialize lang. in new group. + if (!this.subtitleSegments[subtitleGroupId][itemLang]) { + this.subtitleSegments[subtitleGroupId][itemLang] = []; + } + return (item = itemLang); + }).filter((item) => item !== undefined); + + + // # Inject default language's segments to every new language relative to previous VOD. + // # For the case when this is a VOD following another, every language new or old should + // # start with some segments from the previous VOD's last sequence. + const newLanguages = subtitleLanguages.filter((lang) => { + return !previousVODLanguages.includes(lang); + }); + + if (this.previousVod) { + for (let i = 0; i < newLanguages.length; i++) { + const newLanguage = newLanguages[i]; + this.subtitleSegments[subtitleGroupId][newLanguage] = [...this.subtitleSegments[this.DEFAULT_SUBTITLE_GROUP_ID][this.DEFAULT_SUBTITLE_LANGUAGE]]; + } + } + + // # For each lang, find the lang playlist uri and do _loadSubtitleManifest() on it. + for (let j = 0; j < subtitleLanguages.length; j++) { + let subtitleLang = subtitleLanguages[j]; + let subtitleUri = subtitleGroupItems[j].get("uri"); + if (!subtitleUri) { + //# if mediaItems dont have uris + let subtitleVariant = m3u.items.StreamItem.find((item) => { + return !item.get("resolution") && item.get("subtitle") === subtitleGroupId; + }); + if (subtitleVariant) { + subtitleUri = subtitleVariant.get("uri"); + } + } + if (subtitleUri) { + let subtitleManifestUrl = urlResolve(baseUrl, subtitleUri); + if (!subtitleGroups[subtitleGroupId]) { + subtitleGroups[subtitleGroupId] = {}; + } + // # Prevents 'loading' an subtitle track with same GroupID and LANG. + // # otherwise it just would've loaded OVER the latest occurrent of the LANG in GroupID. + if (!subtitleGroups[subtitleGroupId][subtitleLang]) { + let targetGroup = subtitleGroupId; + let targetLang = subtitleLang; + subtitleGroups[subtitleGroupId][subtitleLang] = true; + subtitleManifestPromises.push(this._loadSubtitleManifest(subtitleManifestUrl, targetGroup, targetLang, _injectSubtitleManifest)); + } else { + debug(`Subtitle manifest for language "${subtitleLang}" from '${subtitleGroupId}' in already loaded, skipping`); + } + } else { + debug(`No media item for '${subtitleGroupId}' in "${subtitleLang}" was found, skipping`); + } + } + } else if (this.shouldContainSubtitles) { + if (!this.dummySubtitleEndpoint) { + reject(new Error("Loaded VOD does not contain subtitles and there is no dummy subtitle segment URL configured")); + } + if (!this.expectedSubtitleTracks) { + reject(new Error("There are no expected subtitle tracks")); + } + if (!this.subtitleSliceEndpoint) { + reject(new Error("Missing subtitle slice URL")); + } + } } debug("Codec to Audio Group Id mapping"); debug(this.audioCodecsMap); - return Promise.all(audioManifestPromises); + return Promise.all(audioManifestPromises.concat(subtitleManifestPromises)) }).then(this._cleanupUnused.bind(this)) .then(this._createMediaSequences.bind(this)) .then(resolve) @@ -343,14 +493,14 @@ class HLSVod { * * @param {HLSVod} previousVod - the previous VOD to concatenate to */ - loadAfter(previousVod, _injectMasterManifest, _injectMediaManifest, _injectAudioManifest) { + loadAfter(previousVod, _injectMasterManifest, _injectMediaManifest, _injectAudioManifest, _injectSubtitleManifest) { debug(`Initializing Load VOD After VOD...`); return new Promise((resolve, reject) => { this.previousVod = previousVod; try { this._loadPrevious(); - this.load(_injectMasterManifest, _injectMediaManifest, _injectAudioManifest) - .then(() => { + this.load(_injectMasterManifest, _injectMediaManifest, _injectAudioManifest, _injectSubtitleManifest) + .then(() => {// WARNING we can never remove this.previousVod because it is used later in the code previousVod.releasePreviousVod(); resolve(); }) @@ -411,7 +561,7 @@ class HLSVod { }); if (!this._isEmpty(this.audioSegments)) { - // TODO: Prepend segs to all audio tracks, in all audio groups + // TODO: Prepend segments to all audio tracks, in all audio groups } } else { if (mediaSeqNo >= 0) { @@ -437,7 +587,7 @@ class HLSVod { }); if (!this._isEmpty(this.audioSegments)) { - // TODO: Prepend segs to all audio tracks, in all audio groups + // TODO: Prepend segments to all audio tracks, in all audio groups } } @@ -527,6 +677,32 @@ class HLSVod { } } + /** + * Get all subtitle segments (duration, uri) for a specific media sequence + * + * @param {string} subtitleGroupId - subtitle group Id + * @param {string} subtitleLanguage - subtitle language + * @param {number} seqIdx - media sequence index (first is 0) + */ + getLiveMediaSequenceSubtitleSegments(subtitleGroupId, subtitleLanguage, seqIdx) { + try { + // # When language not found, return segments from default language. + if (!this.mediaSequences[seqIdx].subtitleSegments[subtitleGroupId]) { + subtitleGroupId = this.DEFAULT_SUBTITLE_GROUP_ID; + } + + if (!this.mediaSequences[seqIdx].subtitleSegments[subtitleGroupId][subtitleLanguage]) { + const fallbackLang = this.DEFAULT_SUBTITLE_LANGUAGE; + subtitleGroupId = this.DEFAULT_SUBTITLE_GROUP_ID; + return this.mediaSequences[seqIdx].subtitleSegments[subtitleGroupId][fallbackLang]; + } + return this.mediaSequences[seqIdx].subtitleSegments[subtitleGroupId][subtitleLanguage]; + } catch (err) { + console.error(err); + return []; + } + } + /** * Get the available bandwidths for this VOD */ @@ -574,12 +750,22 @@ class HLSVod { return [audioCodecs, channels]; } + getSubtitleGroups(all = false) { + return Object.keys(this.subtitleSegments).filter(groupId => groupId !== this.DEFAULT_SUBTITLE_GROUP_ID || all); + } + + getSubtitleLangsForSubtitleGroup(groupId) { + return Object.keys(this.subtitleSegments[groupId]); + } + /** * Get the number of media sequences for this VOD */ getLiveMediaSequencesCount(media = "video") { if (media === "audio") { return this.audioSequencesCount; + } else if (media === "subtitle") { + return this.subtitleSequencesCount; } return this.videoSequencesCount; } @@ -600,6 +786,14 @@ class HLSVod { return this.mediaSequenceValuesAudio[end]; } + /** + * Get the media-sequence value for the last subtitle media sequence of this VOD + */ + getLastSequenceMediaSequenceValueSubtitle() { + const end = Object.keys(this.mediaSequenceValuesSubtitle).length - 1; + return this.mediaSequenceValuesSubtitle[end]; + } + /** * Get the HLS live media sequence for a specific media sequence and bandwidth * @@ -652,9 +846,9 @@ class HLSVod { for (let i = 0; i < this.mediaSequences[seqIdx].segments[bw].length; i++) { const v = this.mediaSequences[seqIdx].segments[bw][i]; if (v) { - m3u8 += segToM3u8(v, i, - this.mediaSequences[seqIdx].segments[bw].length, - this.mediaSequences[seqIdx].segments[bw][i+1], + m3u8 += segToM3u8(v, i, + this.mediaSequences[seqIdx].segments[bw].length, + this.mediaSequences[seqIdx].segments[bw][i + 1], previousSegment); previousSegment = v; } @@ -670,7 +864,6 @@ class HLSVod { getLiveMediaAudioSequences(offset, audioGroupId, audioLanguage, seqIdx, discOffset, padding, forceTargetDuration) { debug(`Get live audio media sequence [${seqIdx}] for audioGroupId=${audioGroupId}`); const mediaSeqAudioSegments = this.getLiveMediaSequenceAudioSegments(audioGroupId, audioLanguage, seqIdx); - // # If failed to find segments for given language, // # return null rather than an error. if (!mediaSeqAudioSegments) { @@ -704,8 +897,8 @@ class HLSVod { for (let i = 0; i < mediaSeqAudioSegments.length; i++) { const v = mediaSeqAudioSegments[i]; if (v) { - m3u8 += segToM3u8(v, i, mediaSeqAudioSegments.length, - mediaSeqAudioSegments[i+1], previousSegment); + m3u8 += segToM3u8(v, i, mediaSeqAudioSegments.length, + mediaSeqAudioSegments[i + 1], previousSegment); previousSegment = v; } } @@ -713,6 +906,49 @@ class HLSVod { return m3u8; } + /** + * Gets a hls/makes m3u8-file with all of the correct subtitle segments + * belonging to a given groupID & language for a particular sequence. + */ + getLiveMediaSubtitleSequences(offset, subtitleGroupId, subtitleLanguage, seqIdx, discOffset, padding, forceTargetDuration) { + debug(`Get live subtitle media sequence [${seqIdx}] for subtitleGroupId=${subtitleGroupId}`); + const mediaSeqSubtitleSegments = this.getLiveMediaSequenceSubtitleSegments(subtitleGroupId, subtitleLanguage, seqIdx); + + let targetDuration = this._determineTargetDuration(mediaSeqSubtitleSegments); + if (padding) { + targetDuration += padding; + } + if (forceTargetDuration) { + targetDuration = forceTargetDuration; + } + + let m3u8 = "#EXTM3U\n"; + m3u8 += "#EXT-X-VERSION:6\n"; + if (this.header) { + m3u8 += this.header; + } + const seqStep = this.mediaSequenceValuesSubtitle[seqIdx]; + m3u8 += "#EXT-X-INDEPENDENT-SEGMENTS\n"; + m3u8 += "#EXT-X-TARGETDURATION:" + targetDuration + "\n"; + m3u8 += "#EXT-X-MEDIA-SEQUENCE:" + (offset + seqStep) + "\n"; + let discInOffset = discOffset; + if (discInOffset == null) { + discInOffset = 0; + } + m3u8 += "#EXT-X-DISCONTINUITY-SEQUENCE:" + (discInOffset + this.discontinuitiesSubtitle[seqIdx]) + "\n"; + + let previousSegment = null; + for (let i = 0; i < mediaSeqSubtitleSegments.length; i++) { + const v = mediaSeqSubtitleSegments[i]; + if (v) { + m3u8 += segToM3u8(v, i, mediaSeqSubtitleSegments.length, + mediaSeqSubtitleSegments[i + 1], previousSegment); + previousSegment = v; + } + } + return m3u8; + } + /** * Get the usage profile for this VOD */ @@ -734,12 +970,18 @@ class HLSVod { return this.discontinuitiesAudio[this.audioSequencesCount - 1]; } + getLastDiscontinuitySubtitle() { + return this.discontinuitiesSubtitle[this.subtitleSequencesCount - 1]; + } + /** * Get the delta times for each media sequence. */ getDeltaTimes(media = "video") { if (media === "audio") { return this.deltaTimesAudio.map((o) => o.interval); + } else if (media === "subtitle") { + return this.deltaTimesSubtitle.map((o) => o.interval); } return this.deltaTimes.map((o) => o.interval); } @@ -750,6 +992,8 @@ class HLSVod { getPlayheadPositions(media = "video") { if (media === "audio") { return this.deltaTimesAudio.map((o) => o.position); + } else if (media === "subtitle") { + return this.deltaTimesSubtitle.map((o) => o.position); } return this.deltaTimes.map((o) => o.position); } @@ -783,7 +1027,714 @@ class HLSVod { return this.lastUsedDiscSeq; } + generateSmallerSubtitleSegments(segment, offset, leftover, useDummyUrl, first, elapsedTime) { + if (leftover === null) { + leftover = {}; + } + const bandwidths = Object.keys(this.segments); + let videoSegments = this.segments[bandwidths[0]] + let newSegmentList = []; + let totalSubtitleSegmentDuration = segment.duration; + let index = offset; + let allVideoDurationUsed = false; + while (index < videoSegments.length && totalSubtitleSegmentDuration > 0) { + if (videoSegments[index].discontinuity) { + newSegmentList.push(videoSegments[index]) + index += 1; + continue; + } + if (this.startTimeOffset > 0 && this._removedVideoDuration !== this._removedSubtitleDuration && first) { + first = false; + totalSubtitleSegmentDuration -= (this._removedSubtitleDuration / 1000) + } + const params = new URLSearchParams(); + const startTime = segment.duration - totalSubtitleSegmentDuration; + const consumedVideoDuration = leftover.consumedVideoDuration ? leftover.consumedVideoDuration : 0 + const endTime = startTime + Math.min(videoSegments[index].duration, totalSubtitleSegmentDuration) - consumedVideoDuration; + + if (!useDummyUrl) { + params.append("vtturi", segment.uri) + if (leftover.previousSegmentUri) { + params.append("previousvtturi", leftover.previousSegmentUri); + } + params.append("starttime", startTime) + params.append("endtime", endTime) + params.append("elapsedtime", elapsedTime) + } else { + params.append("p", index) + } + + const base = useDummyUrl ? this.dummySubtitleEndpoint : this.subtitleSliceEndpoint; + const newUri = base + "?" + params; + let newSegment = { ...segment }; + newSegment.uri = newUri; + + if (leftover.duration) { + newSegment.duration = leftover.duration + leftover.consumedVideoDuration; + totalSubtitleSegmentDuration -= leftover.duration; + if (leftover.duration + leftover.consumedVideoDuration === videoSegments[index].duration) { + allVideoDurationUsed = true; + } + leftover = {}; + } + else if (videoSegments[index].duration < totalSubtitleSegmentDuration) { + newSegment.duration = videoSegments[index].duration; + totalSubtitleSegmentDuration -= videoSegments[index].duration; + allVideoDurationUsed = true; + } else if (videoSegments[index].duration === totalSubtitleSegmentDuration) { + newSegment.duration = totalSubtitleSegmentDuration; + totalSubtitleSegmentDuration = 0; + allVideoDurationUsed = true; + } else { + leftover = { + duration: videoSegments[index].duration - totalSubtitleSegmentDuration, + previousSegmentUri: params, + consumedVideoDuration: totalSubtitleSegmentDuration + } + totalSubtitleSegmentDuration = 0; + newSegment = null; + } + if (newSegment) { + newSegmentList.push(newSegment); + } + if (allVideoDurationUsed) { + index++; + allVideoDurationUsed = false; + } + } + + elapsedTime += segment.duration; + return { newSegments: newSegmentList, offset: index, leftover: leftover, elapsedTime: elapsedTime } + } + + generateSequencesTypeAVideo(bw) { + let seqIndex = 0; + let video_duration = 0; + const length = this.segments[bw].length; + let segOffset = 0; + let segIdx = 0; + let sequence = {}; + let video_sequence_list = [] + while (this.segments[bw][segIdx] && segIdx != length) { + if (this.segments[bw][segIdx].uri) { + video_duration += this.segments[bw][segIdx].duration; + } + if (video_duration < this.SEQUENCE_DURATION) { + const bandwidths = Object.keys(this.segments); + for (let i = 0; i < bandwidths.length; i++) { + const bwIdx = bandwidths[i]; + if (!sequence[bwIdx]) { + sequence[bwIdx] = []; + } + if (!this.segments[bwIdx][segIdx]) { + // Should not happen, debug + console.error(`The this.segments[bwIdx=${bwIdx}][segIdx=${segIdx}] is undefined`); + console.error("Initiated bandwidths: ", this.segmentsInitiated); + console.error( + Object.keys(this.segments).map((b) => { + return { bw: b, len: this.segments[b].length }; + }) + ); + reject("Internal data structure error"); + return; + } + let seg = this.segments[bwIdx][segIdx]; + if (!seg) { + debug(segIdx, `WARNING! The sequence[bw=${bwIdx}] pushed seg=${seg}`); + } + sequence[bwIdx].push(seg); + } + segIdx++; + } else { + //debug(`Pushing seq=${this.mediaSequences.length} firstSeg=${sequence[Object.keys(this.segments)[0]][0].uri}, length=${sequence[Object.keys(this.segments)[0]].length}, duration=${duration} < ${this.SEQUENCE_DURATION}`); + if (!sequence[Object.keys(this.segments)[0]][0].uri) { + // If first element in the sequence is a discontinuity or a cue tag we need to 'skip' the following element that + // contains the segment uri and is the actual playlist item to roll over the top. + segOffset++; + } + video_duration = 0; + video_sequence_list.push(sequence); + this.mediaSequenceValues[seqIndex] = seqIndex; + seqIndex++; + sequence = {}; + segOffset++; + segIdx = segOffset; + } + } + + // Final step (video) + if (video_duration < this.SEQUENCE_DURATION) { + // We are out of segments but have not reached the full duration of a sequence + video_duration = 0; + video_sequence_list.push(sequence); + this.mediaSequenceValues[seqIndex] = seqIndex; + sequence = {}; + } + + return video_sequence_list; + } + generateSequencesTypeAExtraMedia(segments, firstGroupId, firstLanguage, type) { + + let segmentLength = segments[firstGroupId][firstLanguage].length; + + let duration = 0; + let sequence = {}; + let sequenceList = []; + let segIdx = 0; + let seqIndex = 0; + let segOffset = 0; + + while (segments[firstGroupId][firstLanguage][segIdx] && segIdx != segmentLength) { + if (segments[firstGroupId][firstLanguage][segIdx].uri) { + duration += segments[firstGroupId][firstLanguage][segIdx].duration; + } + if (duration < this.SEQUENCE_DURATION) { + if (firstGroupId) { + const groupIds = Object.keys(segments); + for (let i = 0; i < groupIds.length; i++) { + const groupId = groupIds[i]; + if (!sequence[groupId]) { + sequence[groupId] = {}; + } + const langs = Object.keys(segments[groupId]); + for (let k = 0; k < langs.length; k++) { + const lang = langs[k]; + if (!sequence[groupId][lang]) { + sequence[groupId][lang] = []; + } + let seg = segments[groupId][lang][segIdx]; + if (!seg) { + if (type === "subtitle") { + const dummySeg = segments[firstGroupId][firstLanguage][segIdx]; + if (dummySeg) { + sequence[groupId][lang].push(dummySeg); + } else { + sequence[groupId][lang].push(seg); + } + } else { + sequence[groupId][lang].push(seg); + } + debug(segIdx, `WARNING! The ${type}Sequence[id=${groupId}][lang=${lang}] pushed seg=${seg}`); + } else { + sequence[groupId][lang].push(seg); + } + } + } + } + segIdx++; + } else { + if (!sequence[firstGroupId][firstLanguage][0].uri) { + // If first element in the sequence is a discontinuity or a cue tag we need to 'skip' the following element that + // contains the segment uri and is the actual playlist item to roll over the top. + segOffset++; + } + duration = 0; + sequenceList.push(sequence); + if (type === "audio") { + this.mediaSequenceValuesAudio[seqIndex] = seqIndex; + } else if (type === "subtitle") { + this.mediaSequenceValuesSubtitle[seqIndex] = seqIndex; + } + seqIndex++; + sequence = {}; + segOffset++; + + segIdx = segOffset; + } + } + + if (duration < this.SEQUENCE_DURATION) { + // We are out of segments but have not reached the full duration of a sequence + duration = 0; + sequenceList.push(sequence); + if (type === "audio") { + this.mediaSequenceValuesAudio[seqIndex] = seqIndex; + } else if (type === "subtitle") { + this.mediaSequenceValuesSubtitle[seqIndex] = seqIndex; + } + sequence = {}; + } + return sequenceList + } + generateSequencesTypeBVideo(bw, bandwidths) { + let seqIndex = 0; + let totalRemovedDiscTags = 0; + let sequence = {}; + const videoSequences = []; + let totalSeqDurVideo = 0; + let segIdxVideo = 0; + let totalRemovedSegments = 0; + const SIZE = this.segments[bw].length; + // Process Video Segments + while (this.segments[bw][segIdxVideo] && segIdxVideo < SIZE) { + try { + totalSeqDurVideo = 0; + const _sequence = JSON.parse(JSON.stringify(sequence)); + if (_sequence[bw] && _sequence[bw].length > 0) { + let temp = 0; + _sequence[bw].forEach((seg) => { + if (seg && seg.duration) { + temp += seg.duration; + } + }); + totalSeqDurVideo = temp; + } + if (segIdxVideo === 0) { + // Create the very first sequence. (No need to remove any segments) + let seqDur = 0; + let loop = true; + while (loop && seqDur < this.SEQUENCE_DURATION && segIdxVideo < SIZE) { + bandwidths.forEach((_bw) => { + if (!_sequence[_bw]) { + _sequence[_bw] = []; + } + const seg = this.segments[_bw][segIdxVideo]; + if (seg && seg.duration && _bw === bw) { + seqDur += seg.duration; + } + if (seg.vodTransition) { + loop = false; + } else { + if (seqDur < this.SEQUENCE_DURATION) { + if (!seg) { + debug(segIdxVideo, `WARNING! The _sequence[bw=${_bw}] pushed seg=${seg}`); + } + _sequence[_bw].push(seg); + } + } + }); + if (loop && seqDur < this.SEQUENCE_DURATION) { + segIdxVideo++; + } + } + } else { + // Creating the rest of the sequences + let newPushedSegmentsCount = 0; + // 1 - Add new segments until we overflow (per variant) + while (totalSeqDurVideo < this.SEQUENCE_DURATION && segIdxVideo < SIZE) { + bandwidths.forEach((_bw) => { + if (!_sequence[_bw]) { + _sequence[_bw] = []; + } + const seg = this.segments[_bw][segIdxVideo]; + if (seg && seg.duration && _bw === bw) { + totalSeqDurVideo += seg.duration; + } + if (!seg) { + debug(segIdxVideo, `WARNING! The _sequence[bw=${_bw}] pushed seg=${seg}`); + } + _sequence[_bw].push(seg); + if (_bw === bandwidths[0] && seg.duration) { + newPushedSegmentsCount++; + } + }); + segIdxVideo++; + } + let shiftOnce = true; + let shiftedSegmentsCount = 0; + // 2 - Shift excess segments and keep count of what has been removed (per variant) + while (totalSeqDurVideo >= this.SEQUENCE_DURATION || (shiftOnce && segIdxVideo !== 0)) { + shiftOnce = false; + let timeToRemove = 0; + let incrementDiscSeqCount = false; + bandwidths.forEach((bw) => { + let seg = _sequence[bw].shift(); + if (!seg) { + // Should not happen, debug + debug(`WARNING! The _sequence[bw=${bw}] shifted seg=${seg}`); + } else { + while (seg && !seg.duration && _sequence[bw].length > 0) { + incrementDiscSeqCount = true; + seg = _sequence[bw].shift(); + } + } + if (seg && seg.duration) { + timeToRemove = seg.duration; + } + }); + if (timeToRemove) { + totalSeqDurVideo -= timeToRemove; + totalRemovedSegments++; + shiftedSegmentsCount++; + } + if (incrementDiscSeqCount) { + totalRemovedDiscTags++; + } + + /* + To avoid creating a sequence where we remove 2 segments to add 2 segments. + Aim to add and remove as few segments as possible each sequence. + */ + if ( + segIdxVideo < SIZE && + shiftedSegmentsCount === 1 && + newPushedSegmentsCount > 1 && + totalSeqDurVideo >= this.SEQUENCE_DURATION + ) { + // pop video... + bandwidths.forEach((_bw) => { + let seg = _sequence[_bw].pop(); + if (seg && seg.duration) { + timeToRemove = seg.duration; + } + }); + // decrement... + newPushedSegmentsCount--; + segIdxVideo--; + totalSeqDurVideo -= timeToRemove; + } + } + } + + videoSequences.push(_sequence); + this.mediaSequenceValues[seqIndex] = totalRemovedSegments; + this.discontinuities[seqIndex] = totalRemovedDiscTags; + sequence = _sequence; + seqIndex++; + } catch (err) { + console.error(err); + } + } + return videoSequences; + } + generateSequencesTypeBExtraMedia(segments, firstGroupId, firstLanguage, type) { + let totalRemovedDiscTags = 0; + let totalRemovedSegments = 0; + let sequence = {}; + let segIdx = 0; + let seqIndex = 0; + let sequences = []; + let SIZE = 0; + if (type === "audio") { + SIZE = segments[firstGroupId][firstLanguage].length; + } else if (type === "subtitle") { + SIZE = segments[firstGroupId][firstLanguage].length; + } + let totalSeqDur = 0; + while (segments[firstGroupId][firstLanguage][segIdx] && segIdx < SIZE) { + try { + totalSeqDur = 0; + const _sequence = JSON.parse(JSON.stringify(sequence)); + if ( + _sequence[firstGroupId] && + _sequence[firstGroupId][firstLanguage] && + _sequence[firstGroupId][firstLanguage].length > 0 + ) { + let temp = 0; + _sequence[firstGroupId][firstLanguage].forEach((seg) => { + if (seg && seg.duration) { + temp += seg.duration; + } + }); + totalSeqDur = temp; + } + if (segIdx === 0) { + // Create the very first sequence. (No need to remove any segments) + let seqDur = 0; + let loop = true; + while (loop && seqDur < this.SEQUENCE_DURATION && segIdx < SIZE) { + let first = true; + const groupIds = Object.keys(segments); + groupIds.forEach((groupId) => { + if (!_sequence[groupId]) { + _sequence[groupId] = {}; + } + const langs = Object.keys(segments[groupId]); + langs.forEach((lang) => { + if (!_sequence[groupId][lang]) { + _sequence[groupId][lang] = []; + } + const seq_seg = segments[groupId][lang][segIdx]; + if (seq_seg && seq_seg.duration && first) { + first = false; + seqDur += seq_seg.duration; + } + if (seq_seg && seq_seg.vodTransition) { + loop = false; + } else { + if (seqDur < this.SEQUENCE_DURATION) { + if (!seq_seg) { + if (type === "subtitle") { + const dummySeg = segments[firstGroupId][firstLanguage][segIdx]; + if (dummySeg) { + _sequence[groupId][lang].push(dummySeg); + } + } else { + _sequence[groupId][lang].push(seq_seg); + } + debug(segIdx, `WARNING! The _${type}Sequence[id=${groupId}][lang=${lang}] pushed seg=${seq_seg}`); + } else { + _sequence[groupId][lang].push(seq_seg); + } + } + } + }); + }); + if (loop && seqDur < this.SEQUENCE_DURATION) { + segIdx++; + } + } + } else { + // Creating the rest of the sequences + let newPushedSegmentsCount = 0; + // 1 - Add new segments until we overflow (per variant) + while (totalSeqDur < this.SEQUENCE_DURATION && segIdx < SIZE) { + let first = true; + const groupIds = Object.keys(segments); + groupIds.forEach((groupId) => { + if (!_sequence[groupId]) { + _sequence[groupId] = {}; + } + const langs = Object.keys(segments[groupId]); + langs.forEach((lang) => { + if (!_sequence[groupId][lang]) { + _sequence[groupId][lang] = []; + } + const seq_seg = segments[groupId][lang][segIdx]; + if (seq_seg && seq_seg.duration && first) { + first = false; + totalSeqDur += seq_seg.duration; + newPushedSegmentsCount++; + } + if (!seq_seg) { + if (type === "subtitle") { + const dummySeg = segments[firstGroupId][firstLanguage][segIdx]; + if (dummySeg) { + _sequence[groupId][lang].push(dummySeg); + } else { + sequence[groupId][lang].push(seq_seg); + } + } else { + _sequence[groupId][lang].push(seq_seg); + } + debug(segIdx, `WARNING! The _${type}Sequence[id=${groupId}][lang=${lang}] pushed seg=${seq_seg}`); + } else { + _sequence[groupId][lang].push(seq_seg); + } + }); + }); + segIdx++; + } + let shiftOnce = true; + let shiftedSegmentsCount = 0; + // 2 - Shift excess segments and keep count of what has been removed (per variant) + while (totalSeqDur >= this.SEQUENCE_DURATION || (shiftOnce && segIdx !== 0)) { // TODO continue here + shiftOnce = false; + let timeToRemove = 0; + let incrementDiscSeqCount = false; + const groupIds = Object.keys(segments); + let first = true; + groupIds.forEach((groupId) => { + if (!_sequence[groupId]) { + _sequence[groupId] = {}; + } + const langs = Object.keys(segments[groupId]); + langs.forEach((lang) => { + if (!_sequence[groupId][lang]) { + _sequence[groupId][lang] = []; + } + let seg = _sequence[groupId][lang].shift(); + if (!seg) { + // Should not happen, debug + debug(`WARNING! The _${type}Sequence[id=${groupId}][lang=${lang}] shifted seg=${seg}`); + } else { + while (seg && !seg.duration && _sequence[groupId][lang].length > 0) { + incrementDiscSeqCount = true; + seg = _sequence[groupId][lang].shift(); + } + } + if (seg && seg.duration && first) { + first = false; + timeToRemove = seg.duration; + } + }); + }); + if (timeToRemove) { + totalSeqDur -= timeToRemove; + totalRemovedSegments++; + shiftedSegmentsCount++; + } + if (incrementDiscSeqCount) { + totalRemovedDiscTags++; + } + + /* + To avoid creating a sequence where we remove 2 segments to add 2 segments. + Aim to add and remove as few segments as possible each sequence. + */ + if ( + segIdx < SIZE && + shiftedSegmentsCount === 1 && + newPushedSegmentsCount > 1 && + totalSeqDur >= this.SEQUENCE_DURATION + ) { + // pop audio... + if (firstGroupId) { + const groupIds = Object.keys(segments); + groupIds.forEach((groupId) => { + const langs = Object.keys(segments[groupId]); + langs.forEach((lang) => { + let seg = _sequence[groupId][lang].pop(); + if (groupId === groupId && lang === firstLanguage) { + timeToRemove = seg.duration; + } + }); + }); + } + // decrement... + newPushedSegmentsCount--; + segIdx--; + totalSeqDur -= timeToRemove; + } + } + } + sequences.push(_sequence); + + if (type === "audio") { + this.discontinuitiesAudio[seqIndex] = totalRemovedDiscTags; + this.mediaSequenceValuesAudio[seqIndex] = totalRemovedSegments; + } else if (type === "subtitle") { + this.discontinuitiesSubtitle[seqIndex] = totalRemovedDiscTags; + this.mediaSequenceValuesSubtitle[seqIndex] = totalRemovedSegments; + } + sequence = _sequence; + seqIndex++; + } catch (err) { + console.error(err); + } + } + return sequences; + } + + calculateDeltaAndPositionExtraMedia(type) { + let prevLastSegment = null; + let discSeqNo = 0; + if (type === "audio") { + this.deltaTimesAudio.push({ + interval: 0, + position: 0, + }); + } else if (type === "subtitle") { + this.deltaTimesSubtitle.push({ + interval: 0, + position: 0, + }); + } + let lastPosition = 0; + let lastPositionIncrement = 0; + const sequenceCount = type === "audio" ? this.audioSequencesCount : this.subtitleSequencesCount + for (let seqNo = 0; seqNo < sequenceCount; seqNo++) { + const mseq = this.mediaSequences[seqNo]; + const groupId = type === "audio" ? Object.keys(mseq.audioSegments)[0] : Object.keys(mseq.subtitleSegments)[0]; + if (!groupId) { + continue; + } + const lang = type === "audio" ? Object.keys(mseq.audioSegments[groupId])[0] : Object.keys(mseq.subtitleSegments[groupId])[0]; + if (!lang) { + continue; + } + const segments = type === "audio" ? mseq.audioSegments[groupId][lang] : mseq.subtitleSegments[groupId][lang]; + if (segments && segments[0] && segments[0].discontinuity) { + debug(`Discontinuity in first segment of media seq ${seqNo}`); + discSeqNo++; + debug(`Increasing discont sequence ${discSeqNo}`); + } + if (this.sequenceAlwaysContainNewSegments) { + type === "audio" ? this.discontinuitiesAudio[seqNo] += discSeqNo : this.discontinuitiesSubtitle[seqNo] += discSeqNo; + discSeqNo = 0; + } else { + type === "audio" ? this.discontinuitiesAudio[seqNo] = discSeqNo : this.discontinuitiesSubtitle[seqNo] = discSeqNo; + } + + if (this.sequenceAlwaysContainNewSegments) { + if (seqNo > 0) { + let tpi = 0; // Total Position Increment (total newly added content in seconds) + const prevLastSegIdx = findIndexReversed(segments, (seg) => { + if (seg.byteRange) { + if (seg.uri) { + return seg.uri === prevLastSegment.uri && seg.byteRange === prevLastSegment.byteRange; + } + } else { + if (seg.uri) { + return seg.uri === prevLastSegment.uri; + } + } + return false; + }); + for (let i = prevLastSegIdx + 1; i < segments.length; i++) { + const seg = segments[i]; + if (seg && seg.duration) { + tpi += seg.duration; + } + } + let lastSegment = segments[segments.length - 1]; + if (lastSegment && lastSegment.discontinuity) { + lastSegment = segments[segments.length - 2]; + } + const positionIncrement = lastSegment.duration; + const interval = tpi - lastPositionIncrement; + if (type === "audio") { + this.deltaTimesAudio.push({ + interval: interval, + position: positionIncrement ? lastPosition + tpi : lastPosition, + }); + } else if (type === "subtitle") { + this.deltaTimesSubtitle.push({ + interval: interval, + position: positionIncrement ? lastPosition + tpi : lastPosition, + }); + } + if (positionIncrement) { + lastPosition += tpi; + lastPositionIncrement = positionIncrement; + } + if (lastSegment && lastSegment.uri) { + prevLastSegment = lastSegment; + } + } else { + if (segments) { + let lastSegment = findBottomSegItem(segments); + if (lastSegment && lastSegment.uri) { + prevLastSegment = lastSegment; + } + lastPositionIncrement = lastSegment.duration; + } + } + } else { + if (seqNo > 0) { + const positionIncrement = segments[segments.length - 1].discontinuity + ? segments[segments.length - 2].duration + : segments[segments.length - 1].duration; + const interval = positionIncrement - lastPositionIncrement; + if (type === "audio") { + this.deltaTimesAudio.push({ + interval: interval, + position: positionIncrement ? lastPosition + positionIncrement : lastPosition, + }); + } else if (type === "subtitle") { + this.deltaTimesSubtitle.push({ + interval: interval, + position: positionIncrement ? lastPosition + positionIncrement : lastPosition, + }); + } + if (positionIncrement) { + lastPosition += positionIncrement; + lastPositionIncrement = positionIncrement; + } + } else { + if (segments) { + lastPositionIncrement = segments[segments.length - 1].discontinuity + ? segments[segments.length - 2].duration + : segments[segments.length - 1].duration; + } + } + } + } + } + // ----- PRIVATE METHODS BELOW ---- + _removedVideoDuration = 0; + _removedSubtitleDuration = 0; _loadPrevious() { const bandwidths = this.previousVod.getBandwidths(); @@ -792,6 +1743,7 @@ class HLSVod { this._copyFromPrevious(bw); } this._copyAudioGroupsFromPrevious(); + this._copySubtitleGroupsFromPrevious(); } _hasMediaSequences(bandwidth) { @@ -907,6 +1859,54 @@ class HLSVod { } } + /** + * Gets previous VOD's subtitle -groupIds, -langs, -segments from its last sequence + * and adds them to the current VOD's this.subtitleSegments property. + */ + _copySubtitleGroupsFromPrevious() { + const previousVodSeqCount = this.previousVod.getLiveMediaSequencesCount("subtitle"); + const subtitleGroups = this.previousVod.getSubtitleGroups(true); + if (subtitleGroups.length > 0) { + for (let i = 0; i < subtitleGroups.length; i++) { + const subtitleGroupId = subtitleGroups[i]; + const subtitleLangs = this.previousVod.getSubtitleLangsForSubtitleGroup(subtitleGroupId); + + for (let k = 0; k < subtitleLangs.length; k++) { + const subtitleLang = subtitleLangs[k]; + const lastMediaSubtitleSequence = this.previousVod.getLiveMediaSequenceSubtitleSegments(subtitleGroupId, subtitleLang, previousVodSeqCount - 1); + if (!this.subtitleSegments[subtitleGroupId]) { + this.subtitleSegments[subtitleGroupId] = {}; + } + if (!this.subtitleSegments[subtitleGroupId][subtitleLang]) { + this.subtitleSegments[subtitleGroupId][subtitleLang] = []; + } + if (lastMediaSubtitleSequence && lastMediaSubtitleSequence.length > 0) { + let start = this.sequenceAlwaysContainNewSegments ? 0 : 1; + if (lastMediaSubtitleSequence[0] && lastMediaSubtitleSequence[0].discontinuity) { + start = this.sequenceAlwaysContainNewSegments ? 1 : 2; + } + for (let idx = start; idx < lastMediaSubtitleSequence.length; idx++) { + let q = lastMediaSubtitleSequence[idx]; + if (q.vodTransition) { + // Remove any vod disc boarders from prev vod + q = { + discontinuity: q.discontinuity, + daterange: q.daterange, + } + } + this.subtitleSegments[subtitleGroupId][subtitleLang].push(q); + } + } + this.subtitleSegments[subtitleGroupId][subtitleLang].push({ + discontinuity: true, + daterange: this.rangeMetadata ? this.rangeMetadata : null, + vodTransition: true + }); + } + } + } + } + _cleanupUnused() { return new Promise((resolve, reject) => { // Remove all bandwidths that are remaining from previous VOD and has not been initiated @@ -929,28 +1929,36 @@ class HLSVod { }); } + _removeDoubleDiscontinuitiesFromExtraMedia(segmentList) { + const groupIds = Object.keys(segmentList); + for (let i = 0; i < groupIds.length; i++) { + const groupId = groupIds[i]; + const langs = Object.keys(segmentList[groupId]); + for (let k = 0; k < langs.length; k++) { + const lang = langs[k]; + segmentList[groupId][lang] = segmentList[groupId][lang].filter((elem, idx, arr) => { + if (idx > 0 && arr[idx - 1] && arr[idx]) { + if (arr[idx - 1].discontinuity && arr[idx].discontinuity) { + return false; + } + } + return true; + }); + } + } + } + _createMediaSequences() { return new Promise((resolve, reject) => { - let segOffset = 0; - let segIdx = 0; - let seqIndex = 0; - let segOffsetAudio = 0; - let segIdxAudio = 0; - let seqIndexAudio = 0; - let totalRemovedDiscTags = 0; - let totalRemovedAudioDiscTags = 0; - let totalRemovedSegments = 0; - let totalSeqDurVideo = 0; - let totalSeqDurAudio = 0; - let video_duration = 0; - let audio_duration = 0; const bw = this._getFirstBwWithSegments(); const audioGroupId = this._getFirstAudioGroupWithSegments(); - const firstLanguage = audioGroupId ? this._getFirstAudioLanguageWithSegments(audioGroupId) : null; - let sequence = {}; - let audioSequence = {}; + const firstAudioLanguage = audioGroupId ? this._getFirstAudioLanguageWithSegments(audioGroupId) : null; + const subtitleGroupId = this.DEFAULT_SUBTITLE_GROUP_ID; + const firstSubtitleLanguage = this.DEFAULT_SUBTITLE_LANGUAGE; + let video_sequence_list = []; // list of sequences let audio_sequence_list = []; // list of audioSequence + let subtitle_sequence_list = []; // list of subtitleSequence // Remove all double discontinuities (video) const bandwidths = Object.keys(this.segments); @@ -968,26 +1976,41 @@ class HLSVod { } // Remove all double discontinuities (audio) if (audioGroupId) { - const audioGroupIds = Object.keys(this.audioSegments); - for (let i = 0; i < audioGroupIds.length; i++) { - const audioGroupId = audioGroupIds[i]; - const audioLangs = Object.keys(this.audioSegments[audioGroupId]); - for (let k = 0; k < audioLangs.length; k++) { - const audioLang = audioLangs[k]; - this.audioSegments[audioGroupId][audioLang] = this.audioSegments[audioGroupId][audioLang].filter((elem, idx, arr) => { - if (idx > 0 && arr[idx - 1] && arr[idx]) { - if (arr[idx - 1].discontinuity && arr[idx].discontinuity) { - return false; - } - } - return true; - }); + this._removeDoubleDiscontinuitiesFromExtraMedia(this.audioSegments) + } + // Remove all double discontinuities (subtitle) + if (subtitleGroupId) { + this._removeDoubleDiscontinuitiesFromExtraMedia(this.subtitleSegments) + } + if (this.shouldContainSubtitles) { + // we are doing all this to figure out the entire duration of the new vod so we can create a long subtitle segment that we can later chunk to smaller segments + let duration = this.getDuration(); + let offset = 0; + let tempDuration = 0; + const bw = this.getBandwidths()[0]; + for (let index = 0; index < this.segments[bw].length; index++) { + if (this.segments[bw][index].duration) { + tempDuration += this.segments[bw][index].duration + } + if (this.segments[bw][index].vodTransition) { + duration -= tempDuration; + offset = index + 1; + break; } } + + const fakeSubtileSegment = { + duration: duration, + timelinePosition: 0, + cue: null, + uri: this.dummySubtitleEndpoint, + }; + + + const result = this.generateSmallerSubtitleSegments(fakeSubtileSegment, offset, 0, true, false, 0) + this.subtitleSegments[this.DEFAULT_SUBTITLE_GROUP_ID][this.DEFAULT_SUBTITLE_LANGUAGE] = this.subtitleSegments[this.DEFAULT_SUBTITLE_GROUP_ID][this.DEFAULT_SUBTITLE_LANGUAGE].concat(result.newSegments) } - let length = this.segments[bw].length; - let a_length = firstLanguage ? this.audioSegments[audioGroupId][firstLanguage].length : 0; if (!this.sequenceAlwaysContainNewSegments) { /*---------------------------------------------. * Generate Sequences out of segments (type-A) | @@ -996,118 +2019,21 @@ class HLSVod { * for SKIPPING adding a segment if it would raise the * sequence duration to over the set limit. */ - while (this.segments[bw][segIdx] && segIdx != length) { - if (this.segments[bw][segIdx].uri) { - video_duration += this.segments[bw][segIdx].duration; - } - if (video_duration < this.SEQUENCE_DURATION) { - const bandwidths = Object.keys(this.segments); - for (let i = 0; i < bandwidths.length; i++) { - const bwIdx = bandwidths[i]; - if (!sequence[bwIdx]) { - sequence[bwIdx] = []; - } - if (!this.segments[bwIdx][segIdx]) { - // Should not happen, debug - console.error(`The this.segments[bwIdx=${bwIdx}][segIdx=${segIdx}] is undefined`); - console.error("Initiated bandwidths: ", this.segmentsInitiated); - console.error( - Object.keys(this.segments).map((b) => { - return { bw: b, len: this.segments[b].length }; - }) - ); - reject("Internal datastructure error"); - return; - } - let seg = this.segments[bwIdx][segIdx]; - if (!seg) { - debug(segIdx, `WARNING! The sequence[bw=${bwIdx}] pushed seg=${seg}`); - } - sequence[bwIdx].push(seg); - } - segIdx++; - } else { - //debug(`Pushing seq=${this.mediaSequences.length} firstSeg=${sequence[Object.keys(this.segments)[0]][0].uri}, length=${sequence[Object.keys(this.segments)[0]].length}, duration=${duration} < ${this.SEQUENCE_DURATION}`); - if (!sequence[Object.keys(this.segments)[0]][0].uri) { - // If first element in the sequence is a discontinuity or a cue tag we need to 'skip' the following element that - // contains the segment uri and is the actual playlist item to roll over the top. - segOffset++; - } - video_duration = 0; - video_sequence_list.push(sequence); - this.mediaSequenceValues[seqIndex] = seqIndex; - seqIndex++; - sequence = {}; - segOffset++; - segIdx = segOffset; - } - } - // Audio Version - while (firstLanguage && this.audioSegments[audioGroupId][firstLanguage][segIdxAudio] && segIdxAudio != a_length) { - if (this.audioSegments[audioGroupId][firstLanguage][segIdxAudio].uri) { - audio_duration += this.audioSegments[audioGroupId][firstLanguage][segIdxAudio].duration; - } - if (audio_duration < this.SEQUENCE_DURATION) { - if (audioGroupId) { - const audioGroupIds = Object.keys(this.audioSegments); - for (let i = 0; i < audioGroupIds.length; i++) { - const audioGroupId = audioGroupIds[i]; - if (!audioSequence[audioGroupId]) { - audioSequence[audioGroupId] = {}; - } - const audioLangs = Object.keys(this.audioSegments[audioGroupId]); - for (let k = 0; k < audioLangs.length; k++) { - const audioLang = audioLangs[k]; - if (!audioSequence[audioGroupId][audioLang]) { - audioSequence[audioGroupId][audioLang] = []; - } - let seg = this.audioSegments[audioGroupId][audioLang][segIdxAudio]; - if (!seg) { - debug(segIdxAudio, `WARNING! The audioSequence[id=${audioGroupId}][lang=${audioLang}] pushed seg=${seg}`); - } - audioSequence[audioGroupId][audioLang].push(seg); - } - } - } - segIdxAudio++; - } else { - if (!audioSequence[audioGroupId][firstLanguage][0].uri) { - // If first element in the sequence is a discontinuity or a cue tag we need to 'skip' the following element that - // contains the segment uri and is the actual playlist item to roll over the top. - segOffsetAudio++; - } - audio_duration = 0; - audio_sequence_list.push(audioSequence); - this.mediaSequenceValuesAudio[seqIndexAudio] = seqIndexAudio; - seqIndexAudio++; - audioSequence = {}; - segOffsetAudio++; - - segIdxAudio = segOffsetAudio; - } - } - // Final step (video) - if (video_duration < this.SEQUENCE_DURATION) { - // We are out of segments but have not reached the full duration of a sequence - video_duration = 0; - video_sequence_list.push(sequence); - this.mediaSequenceValues[seqIndex] = seqIndex; - sequence = {}; + video_sequence_list = this.generateSequencesTypeAVideo(bw); + + if (firstAudioLanguage) { + audio_sequence_list = this.generateSequencesTypeAExtraMedia(this.audioSegments, audioGroupId, firstAudioLanguage, "audio");// segments,firstGroupId, firstLanguage, type } - // Final step (audio) - if (audio_duration < this.SEQUENCE_DURATION) { - // We are out of segments but have not reached the full duration of a sequence - audio_duration = 0; - audio_sequence_list.push(audioSequence); - this.mediaSequenceValuesAudio[seqIndexAudio] = seqIndexAudio; - audioSequence = {}; + if (this.shouldContainSubtitles) { + subtitle_sequence_list = this.generateSequencesTypeAExtraMedia(this.subtitleSegments, subtitleGroupId, firstSubtitleLanguage, "subtitle"); } video_sequence_list.map((_, index) => { this.mediaSequences.push({ segments: video_sequence_list[index], audioSegments: {}, + subtitleSegments: {}, }); }); for (let i = 0; i < audio_sequence_list.length; i++) { @@ -1116,338 +2042,54 @@ class HLSVod { } else { this.mediaSequences.push({ segments: {}, - audioSegments: audio_sequence_list[i] ? audio_sequence_list[i] : {}, - }); - } - } - // Set Sequences Counts - this.videoSequencesCount = video_sequence_list.length; - this.audioSequencesCount = audio_sequence_list.length; - } else { - /*---------------------------------------------. - * Generate Sequences out of segments (type-B) | - *---------------------------------------------' - * Each sequence may step more than 1 count if needed, also each sequence - * must include an addition of a new segment. e.i. When adding a new segment, - * if it would raise the sequence duration to over the set limit, then we - * will remove yet another segment from the top of the segment list. - */ - const videoSequences = []; - let segIdxVideo = 0; - const SIZE = this.segments[bw].length; - // Process Video Segments - while (this.segments[bw][segIdxVideo] && segIdxVideo < SIZE) { - try { - totalSeqDurVideo = 0; - const _sequence = JSON.parse(JSON.stringify(sequence)); - if (_sequence[bw] && _sequence[bw].length > 0) { - let temp = 0; - _sequence[bw].forEach((seg) => { - if (seg && seg.duration) { - temp += seg.duration; - } - }); - totalSeqDurVideo = temp; - } - if (segIdxVideo === 0) { - // Create the very first sequence. (No need to remove any segments) - let seqDur = 0; - let loop = true; - while (loop && seqDur < this.SEQUENCE_DURATION && segIdxVideo < SIZE) { - bandwidths.forEach((_bw) => { - if (!_sequence[_bw]) { - _sequence[_bw] = []; - } - const seg = this.segments[_bw][segIdxVideo]; - if (seg && seg.duration && _bw === bw) { - seqDur += seg.duration; - } - if (seg.vodTransition) { - loop = false; - } else { - if (seqDur < this.SEQUENCE_DURATION) { - if (!seg) { - debug(segIdxVideo, `WARNING! The _sequence[bw=${_bw}] pushed seg=${seg}`); - } - _sequence[_bw].push(seg); - } - } - }); - if (loop && seqDur < this.SEQUENCE_DURATION) { - segIdxVideo++; - } - } - } else { - // Creating the rest of the sequences - let newPushedSegmentsCount = 0; - // 1 - Add new segments until we overflow (per variant) - while (totalSeqDurVideo < this.SEQUENCE_DURATION && segIdxVideo < SIZE) { - bandwidths.forEach((_bw) => { - if (!_sequence[_bw]) { - _sequence[_bw] = []; - } - const seg = this.segments[_bw][segIdxVideo]; - if (seg && seg.duration && _bw === bw) { - totalSeqDurVideo += seg.duration; - } - if (!seg) { - debug(segIdxVideo, `WARNING! The _sequence[bw=${_bw}] pushed seg=${seg}`); - } - _sequence[_bw].push(seg); - if (_bw === bandwidths[0] && seg.duration) { - newPushedSegmentsCount++; - } - }); - segIdxVideo++; - } - let shiftOnce = true; - let shiftedSegmentsCount = 0; - // 2 - Shift excess segments and keep count of what has been removed (per variant) - while (totalSeqDurVideo >= this.SEQUENCE_DURATION || (shiftOnce && segIdxVideo !== 0)) { - shiftOnce = false; - let timeToRemove = 0; - let incrementDiscSeqCount = false; - bandwidths.forEach((bw) => { - let seg = _sequence[bw].shift(); - if (!seg) { - // Should not happen, debug - debug(`WARNING! The _sequence[bw=${bw}] shifted seg=${seg}`); - } else { - while (seg && !seg.duration && _sequence[bw].length > 0) { - incrementDiscSeqCount = true; - seg = _sequence[bw].shift(); - } - } - if (seg && seg.duration) { - timeToRemove = seg.duration; - } - }); - if (timeToRemove) { - totalSeqDurVideo -= timeToRemove; - totalRemovedSegments++; - shiftedSegmentsCount++; - } - if (incrementDiscSeqCount) { - totalRemovedDiscTags++; - } - - /* - To avoid creating a sequence where we remove 2 segs to add 2 segs. - Aim to add and remove as few segments as possible each sequence. - */ - if ( - segIdxVideo < SIZE && - shiftedSegmentsCount === 1 && - newPushedSegmentsCount > 1 && - totalSeqDurVideo >= this.SEQUENCE_DURATION - ) { - // pop video... - bandwidths.forEach((_bw) => { - let seg = _sequence[_bw].pop(); - if (seg && seg.duration) { - timeToRemove = seg.duration; - } - }); - // decrement... - newPushedSegmentsCount--; - segIdxVideo--; - totalSeqDurVideo -= timeToRemove; - } - } - } - - videoSequences.push(_sequence); - - this.mediaSequenceValues[seqIndex] = totalRemovedSegments; - this.discontinuities[seqIndex] = totalRemovedDiscTags; - sequence = _sequence; - seqIndex++; - } catch (err) { - console.error(err); - } - } - const audioSequences = []; - if (audioGroupId) { - let segIdxAudio = 0; - let seqIndex = 0; - totalRemovedSegments = 0; - const SIZEAUDIO = this.audioSegments[audioGroupId][firstLanguage].length; - // Generate audio segments - while (this.audioSegments[audioGroupId][firstLanguage][segIdxAudio] && segIdxAudio < SIZEAUDIO) { - try { - totalSeqDurAudio = 0; - const _audioSequence = JSON.parse(JSON.stringify(audioSequence)); - if ( - _audioSequence[audioGroupId] && - _audioSequence[audioGroupId][firstLanguage] && - _audioSequence[audioGroupId][firstLanguage].length > 0 - ) { - let temp = 0; - _audioSequence[audioGroupId][firstLanguage].forEach((seg) => { - if (seg && seg.duration) { - temp += seg.duration; - } - }); - totalSeqDurAudio = temp; - } - if (segIdxAudio === 0) { - // Create the very first sequence. (No need to remove any segments) - let seqDur = 0; - let loop = true; - while (loop && seqDur < this.SEQUENCE_DURATION && segIdxAudio < SIZEAUDIO) { - let first = true; - const audioGroupIds = Object.keys(this.audioSegments); - audioGroupIds.forEach((groupId) => { - if (!_audioSequence[groupId]) { - _audioSequence[groupId] = {}; - } - const audioLangs = Object.keys(this.audioSegments[groupId]); - audioLangs.forEach((lang) => { - if (!_audioSequence[groupId][lang]) { - _audioSequence[groupId][lang] = []; - } - const seq_seg = this.audioSegments[groupId][lang][segIdxAudio]; - if (seq_seg && seq_seg.duration && first) { - first = false; - seqDur += seq_seg.duration; - } - if (seq_seg.vodTransition) { - loop = false; - } else { - if (seqDur < this.SEQUENCE_DURATION) { - if (!seq_seg) { - debug(segIdxAudio, `WARNING! The _audioSequence[id=${groupId}][lang=${lang}] pushed seg=${seq_seg}`); - } - _audioSequence[groupId][lang].push(seq_seg); - } - } - }); - }); - if (loop && seqDur < this.SEQUENCE_DURATION) { - segIdxAudio++; - } - } - } else { - // Creating the rest of the sequences - let newPushedSegmentsCount = 0; - // 1 - Add new segments until we overflow (per variant) - while (totalSeqDurAudio < this.SEQUENCE_DURATION && segIdxAudio < SIZEAUDIO) { - let first = true; - const audioGroupIds = Object.keys(this.audioSegments); - audioGroupIds.forEach((groupId) => { - if (!_audioSequence[groupId]) { - _audioSequence[groupId] = {}; - } - const audioLangs = Object.keys(this.audioSegments[groupId]); - audioLangs.forEach((lang) => { - if (!_audioSequence[groupId][lang]) { - _audioSequence[groupId][lang] = []; - } - const seq_seg = this.audioSegments[groupId][lang][segIdxAudio]; - if (seq_seg && seq_seg.duration && first) { - first = false; - totalSeqDurAudio += seq_seg.duration; - newPushedSegmentsCount++; - } - if (!seq_seg) { - debug(segIdxAudio, `WARNING! The _audioSequence[id=${groupId}][lang=${lang}] pushed seg=${seq_seg}`); - } - _audioSequence[groupId][lang].push(seq_seg); - }); - }); - segIdxAudio++; - } - let shiftOnce = true; - let shiftedSegmentsCount = 0; - // 2 - Shift excess segments and keep count of what has been removed (per variant) - while (totalSeqDurAudio >= this.SEQUENCE_DURATION || (shiftOnce && segIdxAudio !== 0)) { - shiftOnce = false; - let timeToRemove = 0; - let incrementAudioDiscSeqCount = false; - const audioGroupIds = Object.keys(this.audioSegments); - let first = true; - audioGroupIds.forEach((groupId) => { - if (!_audioSequence[groupId]) { - _audioSequence[groupId] = {}; - } - const audioLangs = Object.keys(this.audioSegments[groupId]); - audioLangs.forEach((lang) => { - if (!_audioSequence[groupId][lang]) { - _audioSequence[groupId][lang] = []; - } - let seg = _audioSequence[groupId][lang].shift(); - if (!seg) { - // Should not happen, debug - debug(`WARNING! The _audioSequence[id=${groupId}][lang=${lang}] shifted seg=${seg}`); - } else { - while (seg && !seg.duration && _audioSequence[groupId][lang].length > 0) { - incrementAudioDiscSeqCount = true; - seg = _audioSequence[groupId][lang].shift(); - } - } - if (seg && seg.duration && first) { - first = false; - timeToRemove = seg.duration; - } - }); - }); - if (timeToRemove) { - totalSeqDurAudio -= timeToRemove; - totalRemovedSegments++; - shiftedSegmentsCount++; - } - if (incrementAudioDiscSeqCount) { - totalRemovedAudioDiscTags++; - } + audioSegments: audio_sequence_list[i] ? audio_sequence_list[i] : {}, + subtitleSegments: {}, + }); + } + } + for (let i = 0; i < subtitle_sequence_list.length; i++) { + if (i < this.mediaSequences.length) { + this.mediaSequences[i].subtitleSegments = subtitle_sequence_list[i] ? subtitle_sequence_list[i] : {}; + } else { + this.mediaSequences.push({ + segments: {}, + subtitleSegments: subtitle_sequence_list[i] ? subtitle_sequence_list[i] : {}, + }); + } + } + // Set Sequences Counts + this.videoSequencesCount = video_sequence_list.length; + this.audioSequencesCount = audio_sequence_list.length; + this.subtitleSequencesCount = subtitle_sequence_list.length; + } else { + /*---------------------------------------------. + * Generate Sequences out of segments (type-B) | + *---------------------------------------------' + * Each sequence may step more than 1 count if needed, also each sequence + * must include an addition of a new segment. e.i. When adding a new segment, + * if it would raise the sequence duration to over the set limit, then we + * will remove yet another segment from the top of the segment list. + */ - /* - To avoid creating a sequence where we remove 2 segs to add 2 segs. - Aim to add and remove as few segments as possible each sequence. - */ - if ( - segIdxAudio < SIZEAUDIO && - shiftedSegmentsCount === 1 && - newPushedSegmentsCount > 1 && - totalSeqDurAudio >= this.SEQUENCE_DURATION - ) { - // pop audio... - if (audioGroupId) { - const audioGroupIds = Object.keys(this.audioSegments); - audioGroupIds.forEach((groupId) => { - const audioLangs = Object.keys(this.audioSegments[groupId]); - audioLangs.forEach((lang) => { - let seg = _audioSequence[groupId][lang].pop(); - if (groupId === audioGroupId && lang === firstLanguage) { - timeToRemove = seg.duration; - } - }); - }); - } - // decrement... - newPushedSegmentsCount--; - segIdxAudio--; - totalSeqDurAudio -= timeToRemove; - } - } - } + let videoSequences = []; + videoSequences = this.generateSequencesTypeBVideo(bw, bandwidths); - audioSequences.push(_audioSequence); + let audioSequences = []; + if (audioGroupId) { + audioSequences = this.generateSequencesTypeBExtraMedia(this.audioSegments, audioGroupId, firstAudioLanguage, "audio"); + } + let subtitleSequences = []; + if (this.shouldContainSubtitles) { + subtitleSequences = this.generateSequencesTypeBExtraMedia(this.subtitleSegments, subtitleGroupId, firstSubtitleLanguage, "subtitle"); - this.mediaSequenceValuesAudio[seqIndex] = totalRemovedSegments; - this.discontinuitiesAudio[seqIndex] = totalRemovedAudioDiscTags; - audioSequence = _audioSequence; - seqIndex++; - } catch (err) { - console.error(err); - } - } } - // Append newly generated video/audio sequences + // Append newly generated video/audio/subtitle sequences videoSequences.map((_, index) => { this.mediaSequences.push({ segments: videoSequences[index], audioSegments: {}, + subtitleSegments: {}, }); }); for (let i = 0; i < audioSequences.length; i++) { @@ -1457,12 +2099,25 @@ class HLSVod { this.mediaSequences.push({ segments: {}, audioSegments: audioSequences[i] ? audioSequences[i] : {}, + subtitleSegments: {} + }); + } + } + for (let i = 0; i < subtitleSequences.length; i++) { + if (i < this.mediaSequences.length) { + this.mediaSequences[i].subtitleSegments = subtitleSequences[i] ? subtitleSequences[i] : {}; + } else { + this.mediaSequences.push({ + segments: {}, + audioSegments: {}, + subtitleSegments: subtitleSequences[i] ? subtitleSequences[i] : {}, }); } } this.videoSequencesCount = videoSequences.length; this.audioSequencesCount = audioSequences.length; + this.subtitleSequencesCount = subtitleSequences.length } if (!this.mediaSequences) { @@ -1567,108 +2222,12 @@ class HLSVod { } // Audio Version if (this.mediaSequences[0].audioSegments) { - let prevLastSegment = null; - let discSeqNo = 0; - this.deltaTimesAudio.push({ - interval: 0, - position: 0, - }); - let lastPosition = 0; - let lastPositionIncrement = 0; - for (let seqNo = 0; seqNo < this.audioSequencesCount; seqNo++) { - const mseq = this.mediaSequences[seqNo]; - const agid = Object.keys(mseq.audioSegments)[0]; - if (!agid) { - continue; - } - const alang = Object.keys(mseq.audioSegments[agid])[0]; - if (!alang) { - continue; - } - const audioSegment = mseq.audioSegments[agid][alang]; - if (audioSegment && audioSegment[0] && audioSegment[0].discontinuity) { - debug(`Discontinuity in first segment of media seq ${seqNo}`); - discSeqNo++; - debug(`Increasing discont sequence ${discSeqNo}`); - } - if (this.sequenceAlwaysContainNewSegments) { - this.discontinuitiesAudio[seqNo] += discSeqNo; - discSeqNo = 0; - } else { - this.discontinuitiesAudio[seqNo] = discSeqNo; - } - - if (this.sequenceAlwaysContainNewSegments) { - if (seqNo > 0) { - let tpi = 0; // Total Position Increment (total newly added content in seconds) - const prevLastSegIdx = findIndexReversed(audioSegment, (seg) => { - if (seg.byteRange) { - if (seg.uri) { - return seg.uri === prevLastSegment.uri && seg.byteRange === prevLastSegment.byteRange; - } - } else { - if (seg.uri) { - return seg.uri === prevLastSegment.uri; - } - } - return false; - }); - for (let i = prevLastSegIdx + 1; i < audioSegment.length; i++) { - const seg = audioSegment[i]; - if (seg && seg.duration) { - tpi += seg.duration; - } - } - let lastSegment = audioSegment[audioSegment.length - 1]; - if (lastSegment && lastSegment.discontinuity) { - lastSegment = audioSegment[audioSegment.length - 2]; - } - const positionIncrement = lastSegment.duration; - const interval = tpi - lastPositionIncrement; - this.deltaTimesAudio.push({ - interval: interval, - position: positionIncrement ? lastPosition + tpi : lastPosition, - }); - if (positionIncrement) { - lastPosition += tpi; - lastPositionIncrement = positionIncrement; - } - if (lastSegment && lastSegment.uri) { - prevLastSegment = lastSegment; - } - } else { - if (audioSegment) { - let lastSegment = findBottomSegItem(audioSegment); - if (lastSegment && lastSegment.uri) { - prevLastSegment = lastSegment; - } - lastPositionIncrement = lastSegment.duration; - } - } - } else { - if (seqNo > 0) { - const positionIncrement = audioSegment[audioSegment.length - 1].discontinuity - ? audioSegment[audioSegment.length - 2].duration - : audioSegment[audioSegment.length - 1].duration; - const interval = positionIncrement - lastPositionIncrement; - this.deltaTimesAudio.push({ - interval: interval, - position: positionIncrement ? lastPosition + positionIncrement : lastPosition, - }); - if (positionIncrement) { - lastPosition += positionIncrement; - lastPositionIncrement = positionIncrement; - } - } else { - if (audioSegment) { - lastPositionIncrement = audioSegment[audioSegment.length - 1].discontinuity - ? audioSegment[audioSegment.length - 2].duration - : audioSegment[audioSegment.length - 1].duration; - } - } - } - } + this.calculateDeltaAndPositionExtraMedia("audio") } + if (this.mediaSequences[0].subtitleSegments) { + this.calculateDeltaAndPositionExtraMedia("subtitle") + } + resolve(); } }); @@ -1681,9 +2240,11 @@ class HLSVod { this.previousVod = null; this.segments = {}; this.audioSegments = {}; + this.subtitleSegments = {}; this.mediaSequences = []; this.targetDuration = {}; this.targetAudioDuration = {}; + this.targetSubtitleDuration = {}; this.usageProfile = []; this.segmentsInitiated = {}; this.usageProfileMapping = null; @@ -1692,11 +2253,13 @@ class HLSVod { this.discontinuitiesAudio = {}; this.mediaSequenceValues = {}; this.mediaSequenceValuesAudio = {}; + this.mediaSequenceValuesSubtitle = {}; this.sequenceAlwaysContainNewSegments = null; this.rangeMetadata = null; this.matchedBandwidths = {}; this.deltaTimes = []; this.deltaTimesAudio = []; + this.deltaTimesSubtitle = []; } _getFirstBwWithSegments() { @@ -1738,6 +2301,35 @@ class HLSVod { } } + _getFirstSubtitleGroupWithSegments() { + // # Looks for first subtitle group with segments by checking if any language + // # track belonging to the group has segments. + const subtitleGroupIds = Object.keys(this.subtitleSegments).filter((id) => { + let idLangs = Object.keys(this.subtitleSegments[id]).filter((lang) => { + return this.subtitleSegments[id][lang].length > 0; + }); + return idLangs.length > 0; + }); + if (subtitleGroupIds.length > 0) { + return subtitleGroupIds[0]; + } else { + return null; + } + } + + _getFirstSubtitleLanguageWithSegments(groupId) { + // # Looks for first subtitle language in group with segments by checking if any language + // # track belonging to the group has segments. + const LangsWithSegments = Object.keys(this.subtitleSegments[groupId]).filter((lang) => { + return this.subtitleSegments[groupId][lang].length > 0; + }); + if (LangsWithSegments.length > 0) { + return LangsWithSegments[0]; + } else { + return null; + } + } + _loadMediaManifest(mediaManifestUri, bandwidth, _injectMediaManifest) { return new Promise((resolve, reject) => { const parser = m3u8.createStream(); @@ -1781,9 +2373,11 @@ class HLSVod { // Remove segments in the beginning if we have a start time offset if (this.startTimeOffset != null) { let remain = this.startTimeOffset; + this._removedVideoDuration = remain; while (remain > 0) { const removed = m3u.items.PlaylistItem.shift(); if (!removed) { + this._removedVideoDuration -= remain; remain = 0; } else { if (removed.get("map-uri")) { @@ -1798,11 +2392,11 @@ class HLSVod { remain -= removed.get("duration") * 1000; } } - this.mediaStartExecessTime = Math.abs(remain); + this._removedVideoDuration - remain; + this.mediaStartExcessTime = Math.abs(remain); } let byteRangeOffset = 0; - for (let i = 0; i < m3u.items.PlaylistItem.length; i++) { if (this.splices[spliceIdx]) { nextSplicePosition = this.splices[spliceIdx].position; @@ -1920,13 +2514,13 @@ class HLSVod { let cue = cueOut || cueIn || cueOutCont || assetData ? { - out: typeof cueOut !== "undefined", - cont: typeof cueOutCont !== "undefined" ? cueOutCont : null, - scteData: typeof scteData !== "undefined" ? scteData : null, - in: cueIn ? true : false, - duration: duration, - assetData: typeof assetData !== "undefined" ? assetData : null, - } + out: typeof cueOut !== "undefined", + cont: typeof cueOutCont !== "undefined" ? cueOutCont : null, + scteData: typeof scteData !== "undefined" ? scteData : null, + in: cueIn ? true : false, + duration: duration, + assetData: typeof assetData !== "undefined" ? assetData : null, + } : null; let q = { duration: playlistItem.get("duration"), @@ -1989,16 +2583,16 @@ class HLSVod { }); } - _similarSegItemDuration(audioPlaylistItems) { - let totalAudioDuration = 0; - let audioCount = 0; - audioPlaylistItems.map((seg) => { + _similarSegItemDuration(playlistItems, startOffset) { + let totalSegmentDuration = 0; + let segmentCount = 0; + playlistItems.map(seg => { if (seg.get("duration")) { - audioCount++; - totalAudioDuration += seg.get("duration"); + segmentCount++; + totalSegmentDuration += seg.get("duration"); } - }); - const avgAudioDuration = totalAudioDuration / audioCount; + }) + const avgSegmentDuration = totalSegmentDuration / segmentCount; const bandwidths = Object.keys(this.segments); if (bandwidths.length === 0) { @@ -2007,14 +2601,18 @@ class HLSVod { const videoSegList = this.segments[bandwidths[0]]; let totalVideoDuration = 0; let videoCount = 0; + let count = 0; videoSegList.map((seg) => { if (seg.duration) { - videoCount++; - totalVideoDuration += seg.duration; + if (count > startOffset || !startOffset) { + videoCount++; + totalVideoDuration += seg.duration; + } } + count++; }); const avgVideoDuration = totalVideoDuration / videoCount; - const diff = Math.abs(avgVideoDuration - avgAudioDuration); + const diff = Math.abs(avgVideoDuration - avgSegmentDuration); if (diff > 0.25) { return false; } @@ -2039,10 +2637,18 @@ class HLSVod { let keys = undefined; // Remove segments in the beginning if we have a start time offset if (this.startTimeOffset != null) { - const sameLength = this._similarSegItemDuration(m3u.items.PlaylistItem); + let offset = 0; + const bw = this.getBandwidths()[0] + for (let index = 0; index < this.segments[bw].length; index++) { + if (this.segments[bw][index].vodTransition) { + offset = index; + break; + } + } + const sameLength = this._similarSegItemDuration(m3u.items.PlaylistItem, offset); let remain = sameLength ? this.startTimeOffset - : this.startTimeOffset + this.mediaStartExecessTime; + : this.startTimeOffset + this.mediaStartExcessTime; while (remain > 0) { let removed; @@ -2075,7 +2681,7 @@ class HLSVod { } let byteRangeOffset = 0; - + if (this.audioSegments[groupId][language]) { for (let i = 0; i < m3u.items.PlaylistItem.length; i++) { const playlistItem = m3u.items.PlaylistItem[i]; @@ -2129,13 +2735,13 @@ class HLSVod { let cue = cueOut || cueIn || cueOutCont || assetData ? { - out: typeof cueOut !== "undefined", - cont: typeof cueOutCont !== "undefined" ? cueOutCont : null, - scteData: typeof scteData !== "undefined" ? scteData : null, - in: cueIn ? true : false, - duration: duration, - assetData: typeof assetData !== "undefined" ? assetData : null, - } + out: typeof cueOut !== "undefined", + cont: typeof cueOutCont !== "undefined" ? cueOutCont : null, + scteData: typeof scteData !== "undefined" ? scteData : null, + in: cueIn ? true : false, + duration: duration, + assetData: typeof assetData !== "undefined" ? assetData : null, + } : null; let q = { duration: playlistItem.get("duration"), @@ -2195,6 +2801,193 @@ class HLSVod { }); } + _loadSubtitleManifest(subtitleManifestUri, groupId, language, _injectSubtitleManifest) { + // # Updated so that segment objects are pushed to Language array instead. + // # Updated input args for _injectSubtitleManifest(). + return new Promise((resolve, reject) => { + const parser = m3u8.createStream(); + debug(`Loading subtitle manifest for lang=${language} of group=${groupId}`); + debug(`Subtitle manifest URI: ${subtitleManifestUri}`); + + let timelinePosition = 1; + + parser.on("m3u", (m3u) => { + let offset = 0; + const bw = this.getBandwidths()[0] + for (let index = 0; index < this.segments[bw].length; index++) { + if (this.segments[bw][index].vodTransition) { + offset = index; + break; + } + } + let similarSegItemDuration = this._similarSegItemDuration(m3u.items.PlaylistItem, offset); + try { + let initSegment = undefined; + let initSegmentByteRange = undefined; + let removedSegmentDuration = 0; + // Remove segments in the beginning if we have a start time offset + if (this.startTimeOffset != null) { + let remain = similarSegItemDuration ? this.startTimeOffset : (this.startTimeOffset + this.mediaStartExcessTime); + while (remain > 0) { + let removed; + if (m3u.items.PlaylistItem[0].get("duration") * 1000 <= remain || similarSegItemDuration) { + removed = m3u.items.PlaylistItem.shift(); + removedSegmentDuration += removed.get("duration"); + } + if (!removed) { + this._removedSubtitleDuration = remain; + remain = 0; + } else { + if (removed.attributes.attributes["map-uri"]) { + initSegment = removed.attributes.attributes["map-uri"]; + if (!initSegment.match("^http")) { + const n = subtitleManifestUri.match("^(.*)/.*?$"); + if (n) { + initSegment = urlResolve(n[1] + "/", initSegment); + } + } + } + remain -= removed.get("duration") * 1000; + } + } + this._removedSubtitleDuration -= remain; + } + + let baseUrl; + const m = subtitleManifestUri.match("^(.*)/.*?$"); + if (m) { + baseUrl = m[1] + "/"; + } + + let byteRangeOffset = 0; + if (this.subtitleSegments[groupId][language]) { + let leftover = {}; + let firstSegment = true; + let elapsedTime = removedSegmentDuration ? removedSegmentDuration : 0; + for (let i = 0; i < m3u.items.PlaylistItem.length; i++) { + const playlistItem = m3u.items.PlaylistItem[i]; + let segmentUri; + let byteRange = undefined; + + if (m3u.items.PlaylistItem[i].attributes.attributes["map-uri"]) { + initSegment = m3u.items.PlaylistItem[i].attributes.attributes["map-uri"]; + initSegmentByteRange = m3u.items.PlaylistItem[i].get("map-byterange"); + if (!initSegment.match("^http")) { + initSegment = urlResolve(baseUrl, initSegment); + } + } + // some items such as CUE-IN parse as a PlaylistItem + // but have no URI + if (playlistItem.get("uri")) { + if (playlistItem.get("uri").match("^http")) { + segmentUri = playlistItem.get("uri"); + } else { + segmentUri = urlResolve(baseUrl, playlistItem.get("uri")); + } + } + if (playlistItem.get("discontinuity")) { + this.subtitleSegments[groupId][language].push({ + discontinuity: true, + }); + } + + if (playlistItem.get("byteRange")) { + let [_, r, o] = playlistItem.get("byteRange").match(/^(\d+)@*(\d*)$/); + if (!o) { + o = byteRangeOffset; + } + byteRangeOffset = parseInt(r) + parseInt(o); + byteRange = `${r}@${o}`; + } + + let assetData = playlistItem.get("assetdata"); + let cueOut = playlistItem.get("cueout"); + let cueIn = playlistItem.get("cuein"); + let cueOutCont = playlistItem.get("cont-offset"); + let duration = 0; + let scteData = playlistItem.get("sctedata"); + if (typeof cueOut !== "undefined") { + duration = cueOut; + } else if (typeof cueOutCont !== "undefined") { + duration = playlistItem.get("cont-dur"); + } + let cue = + cueOut || cueIn || cueOutCont || assetData + ? { + out: typeof cueOut !== "undefined", + cont: typeof cueOutCont !== "undefined" ? cueOutCont : null, + scteData: typeof scteData !== "undefined" ? scteData : null, + in: cueIn ? true : false, + duration: duration, + assetData: typeof assetData !== "undefined" ? assetData : null, + } + : null; + let q = { + duration: playlistItem.get("duration"), + timelinePosition: this.timeOffset != null ? this.timeOffset + timelinePosition : null, + cue: cue, + byteRange: byteRange, + }; + if (segmentUri) { + q.uri = segmentUri; + } + if (initSegment) { + q.initSegment = initSegment; + } + if (initSegmentByteRange) { + q.initSegmentByteRange = initSegmentByteRange; + } + if (this.subtitleSegments[groupId][language].length === 0) { + // Add daterange metadata if this is the first segment + if (this.rangeMetadata) { + q["daterange"] = this.rangeMetadata; + } + } + + if (!similarSegItemDuration) { + const result = this.generateSmallerSubtitleSegments(q, offset, leftover, false, firstSegment, elapsedTime); + firstSegment = false; + this.subtitleSegments[groupId][language] = this.subtitleSegments[groupId][language].concat(result.newSegments); + offset = result.offset; + leftover = result.leftover; + elapsedTime = result.elapsedTime; + } else { + this.subtitleSegments[groupId][language].push(q); + } + timelinePosition += q.duration * 1000; + } + if (!this.targetSubtitleDuration[groupId]) { + this.targetSubtitleDuration[groupId] = {}; + } + this.targetSubtitleDuration[groupId][language] = Math.ceil( + this.subtitleSegments[groupId][language].map((el) => (el ? el.duration : 0)).reduce((max, cur) => Math.max(max, cur), -Infinity) + ); + } + resolve(); + } catch (exc) { + reject(exc); + } + }); + + if (!_injectSubtitleManifest) { + fetchWithRetry(subtitleManifestUri, null, 5, 1000, 5000, debug) + .then((res) => { + if (res.status === 200) { + res.body.pipe(parser); + } else { + throw new Error(res.status + ":: status code error trying to retrieve subtitle manifest " + subtitleManifestUri); + } + }) + .catch(reject); + } else { + const stream = _injectSubtitleManifest(groupId, language); + stream.pipe(parser); + stream.on("error", (err) => reject(err)); + } + }); + } + + _getNearestBandwidthInList(bandwidthToMatch, array) { let bandwidth = bandwidthToMatch; const filteredBandwidths = array; @@ -2331,6 +3124,18 @@ class HLSVod { console.error("Issue calculating length: ", err); } } + + _getSubtitleSegmentsLength(group) { + try { + const langs = Object.keys(this.subtitleSegments[group]); + if (!!langs.length) { + return this.subtitleSegments[group][langs[0]].length; + } + } catch (err) { + console.error("Issue calculating length: ", err); + } + } + } module.exports = HLSVod; diff --git a/spec/hlsvod_audio_spec.js b/spec/hlsvod_audio_spec.js new file mode 100644 index 0000000..0c1c139 --- /dev/null +++ b/spec/hlsvod_audio_spec.js @@ -0,0 +1,68 @@ +const HLSVod = require("../index.js"); + +describe("HLSVod with demuxed audio", () => { + describe("utility functions for audio", () => { + it("generate audio sequences type A", (done) => { + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, { subtitleSpliceEndpoint: "/subtitlevtt.vtt" }); + let mockSequence = { + duration: 10, + timelinePosition: 0, + cue: null, + uri: "" + }; + let sequences = {}; + const groupId = "audio-aacl-97"; + const lang = "sv"; + sequences[groupId] = {}; + sequences[groupId][lang] = []; + for (let i = 0; i < 10; i++) { + mockSequence.uri = "test" + i + ".aac"; + const temp = { ...mockSequence }; + sequences[groupId][lang].push(temp); + } + + let result = mockVod.generateSequencesTypeAExtraMedia(sequences, groupId, lang, "audio"); + expect(result[0][groupId][lang][0].uri).toEqual("test0.aac") + expect(result[0][groupId][lang].length).toEqual(5) + expect(result[0][groupId][lang][4].uri).toEqual("test4.aac") + + expect(result[5][groupId][lang][0].uri).toEqual("test5.aac") + expect(result[5][groupId][lang].length).toEqual(5) + expect(result[5][groupId][lang][4].uri).toEqual("test9.aac") + + done(); + + + }); + it("generate audio sequences type B", (done) => { + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, { subtitleSpliceEndpoint: "/subtitlevtt.vtt" }); + let mockSequence = { + duration: 10, + timelinePosition: 0, + cue: null, + uri: "test" + }; + let sequences = {}; + const groupId = "audio-aacl-97"; + const lang = "sv"; + sequences[groupId] = {}; + sequences[groupId][lang] = []; + for (let i = 0; i < 10; i++) { + mockSequence.uri = "test" + i + ".aac"; + const temp = { ...mockSequence }; + sequences[groupId][lang].push(temp); + } + + let result = mockVod.generateSequencesTypeBExtraMedia(sequences, groupId, lang, "audio"); + expect(result[0][groupId][lang][0].uri).toEqual("test0.aac") + expect(result[0][groupId][lang].length).toEqual(5) + expect(result[0][groupId][lang][4].uri).toEqual("test4.aac") + + expect(result[5][groupId][lang][0].uri).toEqual("test5.aac") + expect(result[5][groupId][lang].length).toEqual(5) + expect(result[5][groupId][lang][4].uri).toEqual("test9.aac") + + done(); + }); + }); +}); \ No newline at end of file diff --git a/spec/hlsvod_subtitles_spec.js b/spec/hlsvod_subtitles_spec.js new file mode 100644 index 0000000..d22beea --- /dev/null +++ b/spec/hlsvod_subtitles_spec.js @@ -0,0 +1,649 @@ +const HLSVod = require("../index.js"); +const fs = require("fs"); +const Readable = require("stream").Readable; + +describe("HLSVod with subtitles", () => { + + const subtitleTracks = [ + { language: "fr", name: "French" }, + { language: "zh", name: "Chinese" }, + { language: "en", name: "English" }, + { language: "sv", name: "Swedish" } + ] + + const hlsOptsAlwaysNewSegmentsFalse = { + dummySubtitleEndpoint: "/dummysubs.vtt", + subtitleSliceEndpoint: "/subtitlevtt.vtt", + shouldContainSubtitles: true, + expectedSubtitleTracks: subtitleTracks, + sequenceAlwaysContainNewSegments: false + } + + const hlsOptsAlwaysNewSegmentsTrue = { + dummySubtitleEndpoint: "/dummysubs.vtt", + subtitleSliceEndpoint: "/subtitlevtt.vtt", + shouldContainSubtitles: true, + expectedSubtitleTracks: subtitleTracks, + sequenceAlwaysContainNewSegments: true + } + + describe("", () => { + let mockMasterManifestLongSegments; + let mockMediaManifestLongSegments; + let mockAudioManifestLongSegments; + let mockSubtitleManifestLongSegments; + + let mockMasterManifestShortSegments; + let mockMediaManifestShortSegments; + let mockSubtitleManifestShortSegments; + + let mockMasterManifestShortSegments2; + let mockMediaManifestShortSegments2; + let mockSubtitleManifestShortSegments2; + + let mockMasterManifestNoSubs; + let mockMediaManifestNoSubs; + let mockAudioManifestNoSubs; + + let mockMasterPlaylistUnevenSubVideoSegments; + let mockMediaPlaylistUnevenSubVideoSegments; + let mockSubtitlePlaylistUnevenSubVideoSegments; + + beforeEach(() => { + mockMasterManifestLongSegments = function () { + return fs.createReadStream("testvectors/hls_subs/master.m3u8"); + }; + + mockMasterManifestShortSegments = function () { + return fs.createReadStream("testvectors/hls_subs2/master.m3u8"); + }; + + mockMasterManifestShortSegments2 = function () { + return fs.createReadStream("testvectors/hls_subs4/index.m3u8"); + }; + + mockMasterManifestNoSubs = function () { + return fs.createReadStream("testvectors/hls_subs_no_subs/master.m3u8"); + }; + + mockMasterPlaylistUnevenSubVideoSegments = function () { + return fs.createReadStream("testvectors/hls_subs3/index.m3u8"); + }; + + mockMediaManifestLongSegments = function () { + return fs.createReadStream("testvectors/hls_subs/b2962000-video.m3u8"); + }; + + mockMediaManifestShortSegments = function () { + return fs.createReadStream("testvectors/hls_subs2/video.m3u8"); + }; + + mockMediaManifestShortSegments2 = function () { + return fs.createReadStream("testvectors/hls_subs4/stream_0/index.m3u8"); + }; + + mockMediaManifestNoSubs = function () { + return fs.createReadStream("testvectors/hls_subs_no_subs/b2962000-video.m3u8"); + }; + + mockMediaPlaylistUnevenSubVideoSegments = function () { + return fs.createReadStream("testvectors/hls_subs3/stream_0/index.m3u8"); + }; + + mockAudioManifestLongSegments = function () { + return fs.createReadStream(`testvectors/hls_subs/b160000-english.m3u8`); + } + + mockAudioManifestNoSubs = function () { + return fs.createReadStream(`testvectors/hls_subs_no_subs/b160000-english.m3u8`); + } + + mockSubtitleManifestLongSegments = function (_, lang) { + const langs = { + "zh": "chinese", + "fr": "french", + "sv": "french" + } + if (lang) { + return fs.createReadStream(`testvectors/hls_subs/${langs[lang]}-ed.m3u8`); + } else { + return fs.createReadStream(`testvectors/hls_subs/french-ed.m3u8`); + } + }; + + mockSubtitleManifestShortSegments = function () { + return fs.createReadStream(`testvectors/hls_subs2/subs.m3u8`); + }; + + mockSubtitleManifestShortSegments2 = function () { + return fs.createReadStream(`testvectors/hls_subs4/subs/sub.m3u8`); + }; + + mockSubtitlePlaylistUnevenSubVideoSegments = function () { + return fs.createReadStream(`testvectors/hls_subs3/subs/sub.m3u8`); + }; + + }); + + it("returns the correct number of bandwidths", (done) => { + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsFalse); + mockVod.load(mockMasterManifestNoSubs, mockMediaManifestNoSubs, mockAudioManifestNoSubs) + .then(() => { + expect(mockVod.getBandwidths().length).toBe(1); + expect(mockVod.getBandwidths()).toEqual(["2962000"]); + done(); + }); + }); + + it("checks serialize size", (done) => { + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsFalse); + mockVod2 = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsFalse); + mockVod.load(mockMasterManifestLongSegments, mockMediaManifestLongSegments, mockAudioManifestLongSegments, mockSubtitleManifestLongSegments) + .then(() => { + return mockVod2.load(mockMasterManifestNoSubs, mockMediaManifestNoSubs, mockAudioManifestNoSubs) + }) + .then(() => { + const serialized = mockVod.toJSON() + const size = Buffer.byteLength(JSON.stringify(serialized)) + const serialized2 = mockVod2.toJSON() + const size2 = Buffer.byteLength(JSON.stringify(serialized2)) + expect(size2).toBeLessThan(size); + done(); + }); + }); + + it("no splice subtitle url", (done) => { + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, { dummySubtitleEndpoint: "/dummysubs.vtt", shouldContainSubtitles: true, expectedSubtitleTracks: subtitleTracks }); + mockVod.load(mockMasterManifestLongSegments, mockMediaManifestLongSegments, mockAudioManifestLongSegments, mockSubtitleManifestLongSegments) + .catch((e) => { + expect(e.message).toEqual("Missing subtitle slice URL"); + done(); + }); + }); + + it("no subtitle tracks", (done) => { + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, { dummySubtitleEndpoint: "/dummysubs.vtt", subtitleSliceEndpoint: "/subtitlevtt.vtt", shouldContainSubtitles: true }); + mockVod.load(mockMasterManifestLongSegments, mockMediaManifestLongSegments, mockAudioManifestLongSegments, mockSubtitleManifestLongSegments) + .catch((e) => { + expect(e.message).toEqual("There are no expected subtitle tracks"); + done(); + }); + }); + + it("returns the correct first segment", (done) => { + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsFalse); + mockVod.load(mockMasterManifestLongSegments, mockMediaManifestLongSegments, mockAudioManifestLongSegments, mockSubtitleManifestLongSegments) + .then(() => { + const m3u8 = mockVod.getLiveMediaSubtitleSequences(0, "subs", "fr", 0); + const subStrings = m3u8.split("\n") + expect(subStrings[7]).toEqual("/subtitlevtt.vtt?vtturi=http%3A%2F%2Fmock.com%2Fsubtitlechunk_lfra_w1588523518_b160000_slen_t64RW5nbGlzaA%3D%3D_0.webvtt&starttime=0&endtime=6&elapsedtime=0"); + done(); + }); + }); + + it("returns the correct third sequence", (done) => { + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsFalse); + mockVod.load(mockMasterManifestLongSegments, mockMediaManifestLongSegments, mockAudioManifestLongSegments, mockSubtitleManifestLongSegments) + .then(() => { + const m3u8 = mockVod.getLiveMediaSubtitleSequences(0, "subs", "fr", 2); + const subStrings = m3u8.split("\n") + expect(subStrings[7]).toEqual("/subtitlevtt.vtt?vtturi=http%3A%2F%2Fmock.com%2Fsubtitlechunk_lfra_w1588523518_b160000_slen_t64RW5nbGlzaA%3D%3D_0.webvtt&starttime=12&endtime=18&elapsedtime=0"); + done(); + }); + }); + + it("handles split segments correctly", (done) => { + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsFalse); + mockVod.load(mockMasterPlaylistUnevenSubVideoSegments, mockMediaPlaylistUnevenSubVideoSegments, null, mockSubtitlePlaylistUnevenSubVideoSegments) + .then(() => { + const m3u8 = mockVod.getLiveMediaSubtitleSequences(0, "subs", "en", 0); + const subStrings = m3u8.split("\n"); + const url = new URL("http://temp" + subStrings[9]); + const params = url.searchParams; + expect(params.get("vtturi")).toEqual("http://mock.com/subs/2.webvtt"); + expect(params.get("previousvtturi")).toEqual("vtturi=http%3A%2F%2Fmock.com%2Fsubs%2F1.webvtt&starttime=4&endtime=6&elapsedtime=0"); + expect(params.get("elapsedtime")).toEqual("6"); + done(); + }); + }); + + it("returns the correct segment when using offset (27sec) with short segments", (done) => { + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, null, 27 * 1000, 0, hlsOptsAlwaysNewSegmentsFalse); + mockVod.load(mockMasterManifestShortSegments, mockMediaManifestShortSegments, null, mockSubtitleManifestShortSegments) + .then(() => { + const m3u8 = mockVod.getLiveMediaSubtitleSequences(0, "textstream", "sv", 0); + const m3u8_2 = mockVod.getLiveMediaSequences(0, "455000", 0); + const subStrings = m3u8.split("\n") + const subStrings2 = m3u8_2.split("\n") + expect(subStrings[7]).toEqual("https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt"); + expect(subStrings2[8]).toEqual("https://vod.streaming.a2d.tv/ys/1/4/0/1/88485/u-6600-a-128-1-2.mp4"); + done(); + }); + }); + it("returns the correct segment when using offset (27sec) with long segments", (done) => { + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, null, 27 * 1000, 0, hlsOptsAlwaysNewSegmentsFalse); + mockVod.load(mockMasterManifestLongSegments, mockMediaManifestLongSegments, mockAudioManifestLongSegments, mockSubtitleManifestLongSegments) + .then(() => { + const m3u8 = mockVod.getLiveMediaSubtitleSequences(0, "subs", "fr", 0); + const m3u8_2 = mockVod.getLiveMediaSequences(0, "2962000", 0); + const subStrings = m3u8.split("\n") + const subStrings2 = m3u8_2.split("\n") + expect(subStrings[7]).toEqual("/subtitlevtt.vtt?vtturi=http%3A%2F%2Fmock.com%2Fsubtitlechunk_lfra_w1588523518_b160000_slen_t64RW5nbGlzaA%3D%3D_0.webvtt&starttime=30&endtime=36&elapsedtime=0"); + expect(subStrings2[7]).toEqual("http://mock.com/media/media_w1204859437_b2962000_vo_slen_t64TWFpbg==_5.ts"); + done(); + }); + }); + + it("returns the correct segment when using offset (150sec) with long segments", (done) => { + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, null, 150 * 1000, 0, hlsOptsAlwaysNewSegmentsFalse); + mockVod.load(mockMasterManifestLongSegments, mockMediaManifestLongSegments, mockAudioManifestLongSegments, mockSubtitleManifestLongSegments) + .then(() => { + const m3u8 = mockVod.getLiveMediaSubtitleSequences(0, "subs", "fr", 0); + const m3u8_2 = mockVod.getLiveMediaSequences(0, "455000", 0); + const subStrings = m3u8.split("\n") + const subStrings2 = m3u8_2.split("\n") + expect(subStrings[7]).toEqual("/subtitlevtt.vtt?vtturi=http%3A%2F%2Fmock.com%2Fsubtitlechunk_lfra_w1588523518_b160000_slen_t64RW5nbGlzaA%3D%3D_25.webvtt&starttime=0&endtime=6&elapsedtime=150"); + expect(subStrings2[7]).toEqual("http://mock.com/media/media_w1204859437_b2962000_vo_slen_t64TWFpbg==_25.ts"); + done(); + }); + }); + it("returns the correct last segment sequenceAlwaysContainNewSegments(true)", (done) => { + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsTrue); + mockVod.load(mockMasterManifestShortSegments, mockMediaManifestShortSegments, null, mockSubtitleManifestShortSegments) + .then(() => { + const m3u8 = mockVod.getLiveMediaSubtitleSequences(0, "textstream", "sv", 0); + const m3u8_2 = mockVod.getLiveMediaSubtitleSequences(0, "textstream", "sv", 1); + const subStrings = m3u8.split("\n") + const subStrings2 = m3u8_2.split("\n") + expect(subStrings[41]).toEqual("https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-7.webvtt"); + expect(subStrings2[40]).toEqual("https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-8.webvtt"); + expect(subStrings[41]).not.toEqual(subStrings2[40])//comparing last segment in both playlists + done(); + }); + }); + it("subs after vod with subs with short segments", (done) => { + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsFalse); + mockVod2 = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsFalse); + mockVod.load(mockMasterManifestShortSegments, mockMediaManifestShortSegments, null, mockSubtitleManifestShortSegments) + .then(() => { + return mockVod2.loadAfter(mockVod, mockMasterManifestShortSegments, mockMediaManifestShortSegments, null, mockSubtitleManifestShortSegments) + }).then(() => { + const m3u8 = mockVod2.getLiveMediaSubtitleSequences(0, "textstream", "sv", 0); + const m3u8_2 = mockVod2.getLiveMediaSubtitleSequences(0, "textstream", "sv", 1); + const subStrings = m3u8.split("\n") + const subStrings2 = m3u8_2.split("\n") + expect(subStrings[33]).toEqual("https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-693.webvtt"); + expect(subStrings2[32]).toEqual("#EXT-X-DISCONTINUITY") + expect(subStrings2[33]).toEqual("#EXTINF:3.000,"); + expect(subStrings2[34]).toEqual("https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt"); + done(); + }); + }); + it("subs with long segments after vod with subs with short segments", (done) => { + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsFalse); + mockVod2 = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsFalse); + mockVod.load(mockMasterManifestShortSegments2, mockMediaManifestShortSegments2, null, mockSubtitleManifestShortSegments2) + .then(() => { + return mockVod2.loadAfter(mockVod, mockMasterManifestLongSegments, mockMediaManifestLongSegments, mockAudioManifestLongSegments, mockSubtitleManifestLongSegments) + }).then(() => { + const m3u8 = mockVod2.getLiveMediaSubtitleSequences(0, "subs", "fr", 1); + const m3u8_2 = mockVod2.getLiveMediaSubtitleSequences(0, "subs", "fr", 2); + const subStrings = m3u8.split("\n"); + const subStrings2 = m3u8_2.split("\n"); + expect(subStrings[16]).toEqual("#EXTINF:2.000,"); + expect(subStrings[17]).toEqual("http://mock.com/subs/7.webvtt"); + expect(subStrings2[16]).toEqual("#EXT-X-DISCONTINUITY") + expect(subStrings2[17]).toEqual("#EXTINF:6.000,"); + expect(subStrings2[18]).toEqual("/subtitlevtt.vtt?vtturi=http%3A%2F%2Fmock.com%2Fsubtitlechunk_lfra_w1588523518_b160000_slen_t64RW5nbGlzaA%3D%3D_0.webvtt&starttime=0&endtime=6&elapsedtime=0"); + done(); + }); + }); + it("subs with short segments after vod with subs with long segments", (done) => { + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsFalse); + mockVod2 = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsFalse); + mockVod.load(mockMasterManifestLongSegments, mockMediaManifestLongSegments, mockAudioManifestLongSegments, mockSubtitleManifestLongSegments) + .then(() => { + return mockVod2.loadAfter(mockVod, mockMasterManifestShortSegments2, mockMediaManifestShortSegments2, null, mockSubtitleManifestShortSegments2); + }).then(() => { + const m3u8 = mockVod2.getLiveMediaSubtitleSequences(0, "subs", "fr", 0); + const m3u8_2 = mockVod2.getLiveMediaSubtitleSequences(0, "subs", "fr", 1); + const subStrings = m3u8.split("\n"); + const subStrings2 = m3u8_2.split("\n"); + expect(subStrings[20]).toEqual("#EXTINF:6.000,"); + expect(subStrings[21]).toEqual("/dummysubs.vtt?p=107"); + expect(subStrings2[20]).toEqual("#EXT-X-DISCONTINUITY") + expect(subStrings2[21]).toEqual("#EXTINF:4.000,"); + expect(subStrings2[22]).toEqual("http://mock.com/subs/0.webvtt"); + done(); + }); + }); + it("subs with long segments after vod with subs with short segments and alwaysNewSegments(true)", (done) => { + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsTrue); + mockVod2 = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsTrue); + mockVod.load(mockMasterManifestShortSegments2, mockMediaManifestShortSegments2, null, mockSubtitleManifestShortSegments2) + .then(() => { + return mockVod2.loadAfter(mockVod, mockMasterManifestLongSegments, mockMediaManifestLongSegments, mockAudioManifestLongSegments, mockSubtitleManifestLongSegments) + }) + .then(() => { + const m3u8 = mockVod2.getLiveMediaSubtitleSequences(0, "subs", "fr", 0); + const m3u8_2 = mockVod2.getLiveMediaSubtitleSequences(0, "subs", "fr", 1); + const subStrings = m3u8.split("\n") + const subStrings2 = m3u8_2.split("\n") + expect(subStrings[20]).toEqual("#EXTINF:2.000,"); + expect(subStrings[21]).toEqual("http://mock.com/subs/7.webvtt"); + expect(subStrings2[20]).toEqual("#EXT-X-DISCONTINUITY") + expect(subStrings2[21]).toEqual("#EXTINF:6.000,"); + expect(subStrings2[22]).toEqual("/subtitlevtt.vtt?vtturi=http%3A%2F%2Fmock.com%2Fsubtitlechunk_lfra_w1588523518_b160000_slen_t64RW5nbGlzaA%3D%3D_0.webvtt&starttime=0&endtime=6&elapsedtime=0"); + done(); + + }); + }); + it("subs with short segments after vod with subs with long segments and alwaysNewSegments(true)", (done) => { + const bool = 1; + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsTrue); + mockVod2 = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsTrue); + mockVod.load(mockMasterManifestLongSegments, mockMediaManifestLongSegments, mockAudioManifestLongSegments, mockSubtitleManifestLongSegments) + .then(() => { + return mockVod2.loadAfter(mockVod, mockMasterManifestShortSegments2, mockMediaManifestShortSegments2, null, mockSubtitleManifestShortSegments2) + }).then(() => { + const m3u8 = mockVod2.getLiveMediaSubtitleSequences(0, "subs", "fr", 0); + const m3u8_2 = mockVod2.getLiveMediaSubtitleSequences(0, "subs", "fr", 1); + const subStrings = m3u8.split("\n") + const subStrings2 = m3u8_2.split("\n") + expect(subStrings[22]).toEqual("#EXTINF:6.000,"); + expect(subStrings[23]).toEqual("/dummysubs.vtt?p=107"); + expect(subStrings2[22]).toEqual("#EXT-X-DISCONTINUITY") + expect(subStrings2[23]).toEqual("#EXTINF:4.000,"); + expect(subStrings2[24]).toEqual("http://mock.com/subs/0.webvtt"); + done(); + }); + }); + it("deltaTimes and playheadPos, alwaysNewSegments(true)", (done) => { + const bool = 1; + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsTrue); + mockVod.load(mockMasterManifestLongSegments, mockMediaManifestLongSegments, mockAudioManifestLongSegments, mockSubtitleManifestLongSegments) + .then(() => { + const deltaV = mockVod.getDeltaTimes() + const deltaS = mockVod.getDeltaTimes("subtitle") + + const playheadPosV = mockVod.getPlayheadPositions() + const playheadPosS = mockVod.getPlayheadPositions("subtitle") + expect(deltaV).toEqual(deltaS); + expect(playheadPosV).toEqual(playheadPosS); + done(); + }); + }); + it("deltaTimes and playheadPos, alwaysNewSegments(false)", (done) => { + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsFalse); + mockVod.load(mockMasterManifestLongSegments, mockMediaManifestLongSegments, mockAudioManifestLongSegments, mockSubtitleManifestLongSegments) + .then(() => { + const deltaV = mockVod.getDeltaTimes() + const deltaS = mockVod.getDeltaTimes("subtitle") + + const playheadPosV = mockVod.getPlayheadPositions() + const playheadPosS = mockVod.getPlayheadPositions("subtitle") + expect(deltaV).toEqual(deltaS); + expect(playheadPosV).toEqual(playheadPosS); + done(); + }); + }); + }); + + describe("mixing vod with subtitles and without", () => { + let mockMasterManifestWithSubs; + let mockMediaManifestWithSubs; + let mockAudioManifestWithSubs; + let mockSubtitleManifestWithSubs; + let mockMasterManifestNoSubs; + let mockMediaManifestNoSubs; + beforeEach(() => { + mockMasterManifestWithSubs = function () { + return fs.createReadStream("testvectors/hls_subs/master.m3u8"); + }; + + mockMasterManifestNoSubs = function () { + return fs.createReadStream("testvectors/hls15/master.m3u8"); + }; + + + mockMediaManifestWithSubs = function () { + return fs.createReadStream("testvectors/hls_subs/b2962000-video.m3u8"); + }; + + mockMediaManifestNoSubs = function () { + return fs.createReadStream("testvectors/hls15/index_1010931.m3u8"); + }; + + mockSubtitleManifestWithSubs = function (_, lang) { + const langs = { + "zh": "chinese", + "fr": "french" + } + if (lang) { + return fs.createReadStream(`testvectors/hls_subs/${langs[lang]}-ed.m3u8`); + } else { + return fs.createReadStream(`testvectors/hls_subs/french-ed.m3u8`); + } + }; + + mockAudioManifestWithSubs = function () { + return fs.createReadStream(`testvectors/hls_subs/b160000-english.m3u8`); + } + }) + it("no subs after vod with subs with fallback URL", (done) => { + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsFalse); + mockVod2 = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsFalse); + mockVod.load(mockMasterManifestWithSubs, mockMediaManifestWithSubs, mockAudioManifestWithSubs, mockSubtitleManifestWithSubs) + .then(() => { + return mockVod2.loadAfter(mockVod, mockMasterManifestNoSubs, mockMediaManifestNoSubs) + }) + .then(() => { + const m3u8 = mockVod2.getLiveMediaSubtitleSequences(0, "subs", "fr", 0); + const subStrings = m3u8.split("\n") + expect(subStrings[21]).toEqual("/dummysubs.vtt?p=107"); + expect(subStrings[22]).toEqual("#EXT-X-DISCONTINUITY") + expect(subStrings[23]).toEqual("#EXTINF:2.000,"); + expect(subStrings[24]).toEqual("/dummysubs.vtt?p=9"); + done(); + }); + }); + it("subs after vod with no subs with fallback URL", (done) => { + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsFalse); + mockVod2 = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsFalse); + mockVod.load(mockMasterManifestNoSubs, mockMediaManifestNoSubs) + .then(() => { + return mockVod2.loadAfter(mockVod, mockMasterManifestWithSubs, mockMediaManifestWithSubs, mockAudioManifestWithSubs, mockSubtitleManifestWithSubs) + }) + .then(() => { + const m3u8 = mockVod2.getLiveMediaSubtitleSequences(0, "subs", "fr", 0); + const subStrings = m3u8.split("\n") + expect(subStrings[17]).toEqual("/dummysubs.vtt?p=6"); + expect(subStrings[18]).toEqual("#EXT-X-DISCONTINUITY") + expect(subStrings[19]).toEqual("#EXTINF:6.000,"); + expect(subStrings[20]).toEqual("/subtitlevtt.vtt?vtturi=http%3A%2F%2Fmock.com%2Fsubtitlechunk_lfra_w1588523518_b160000_slen_t64RW5nbGlzaA%3D%3D_0.webvtt&starttime=0&endtime=6&elapsedtime=0"); + done(); + }); + }); + it("subs after vod without subs", (done) => { + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsFalse); + mockVod2 = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsFalse); + mockVod3 = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsFalse); + mockVod.load(mockMasterManifestWithSubs, mockMediaManifestWithSubs, mockAudioManifestWithSubs, mockSubtitleManifestWithSubs) + .then(() => { + return mockVod2.loadAfter(mockVod, mockMasterManifestNoSubs, mockMediaManifestNoSubs) + }) + .then(() => { + return mockVod3.loadAfter(mockVod2, mockMasterManifestWithSubs, mockMediaManifestWithSubs, mockAudioManifestWithSubs, mockSubtitleManifestWithSubs) + }) + .then(() => { + const m3u8_3 = mockVod3.getLiveMediaSubtitleSequences(0, "subs", "fr", 1); + const subStrings3 = m3u8_3.split("\n") + expect(subStrings3[29]).toEqual("#EXTINF:2.000,"); + expect(subStrings3[30]).toEqual("/dummysubs.vtt?p=15"); + expect(subStrings3[31]).toEqual("#EXT-X-DISCONTINUITY") + expect(subStrings3[32]).toEqual("#EXTINF:6.000,"); + expect(subStrings3[33]).toEqual("/subtitlevtt.vtt?vtturi=http%3A%2F%2Fmock.com%2Fsubtitlechunk_lfra_w1588523518_b160000_slen_t64RW5nbGlzaA%3D%3D_0.webvtt&starttime=0&endtime=6&elapsedtime=0"); + done(); + }); + }); + it("no subs after vod with subs without fallback URL", (done) => { + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, { subtitleSliceEndpoint: "/subtitlevtt.vtt", shouldContainSubtitles: true, expectedSubtitleTracks: subtitleTracks }); + mockVod2 = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, { subtitleSliceEndpoint: "/subtitlevtt.vtt", shouldContainSubtitles: true, expectedSubtitleTracks: subtitleTracks }); + mockVod.load(mockMasterManifestWithSubs, mockMediaManifestWithSubs, mockAudioManifestWithSubs, mockSubtitleManifestWithSubs) + .then(() => { + return mockVod2.loadAfter(mockVod, mockMasterManifestNoSubs, mockMediaManifestNoSubs) + }) + .catch((e) => { + expect(e.message).toEqual("Loaded VOD does not contain subtitles and there is no dummy subtitle segment URL configured"); + done(); + }); + + }); + }); + + describe("support function", () => { + let mockMasterManifestNoSubs; + let mockMediaManifestNoSubs; + + beforeEach(() => { + mockMasterManifestNoSubs = function () { + return fs.createReadStream("testvectors/hls15/master.m3u8"); + }; + + mockMediaManifestNoSubs = function () { + return fs.createReadStream("testvectors/hls15/index_1010931.m3u8"); + }; + }); + + it("generateSmallerSubtitleSegments with one segment", (done) => { + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsFalse); + mockVod.load(mockMasterManifestNoSubs, mockMediaManifestNoSubs) + .then(() => { + const segment = { + duration: 15.5, + timelinePosition: 0, + cue: null, + uri: "test.webvtt", + }; + const result = mockVod.generateSmallerSubtitleSegments(segment, 0, null, false, false, 0); + expect(result.elapsedTime).toEqual(15.5) + expect(result.offset).toEqual(7) + expect(result.leftover).toEqual({}) + expect(result.newSegments.length).toEqual(7) + expect(result.newSegments[3].duration).toEqual(3.5) + expect(result.newSegments[3].uri).toEqual("/subtitlevtt.vtt?vtturi=test.webvtt&starttime=6&endtime=9.5&elapsedtime=0") + done(); + }) + }); + + it("generateSmallerSubtitleSegments with two segment and uneven", (done) => { + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsFalse); + mockVod.load(mockMasterManifestNoSubs, mockMediaManifestNoSubs) + .then(() => { + const segment = { + duration: 7, + timelinePosition: 0, + cue: null, + uri: "test1.webvtt", + }; + const segment1 = { + duration: 8.5, + timelinePosition: 0, + cue: null, + uri: "test2.webvtt", + }; + const segments = [segment, segment1]; + let results = []; + let elapsedTime = 0; + let offset = 0; + let leftover = null; + for (let i = 0; i < segments.length; i++) { + const result = mockVod.generateSmallerSubtitleSegments(segments[i], offset, leftover, false, false, elapsedTime); + elapsedTime += result.elapsedTime; + offset += result.offset; + leftover = result.leftover; + results.push(result); + } + + expect(results[0].elapsedTime).toEqual(7) + expect(results[0].offset).toEqual(3) + expect(results[0].leftover.duration).toEqual(2.5) + expect(results[0].leftover.previousSegmentUri.toString()).toEqual("vtturi=test1.webvtt&starttime=6&endtime=7&elapsedtime=0") + expect(results[0].leftover.consumedVideoDuration).toEqual(1) + expect(results[0].newSegments.length).toEqual(3) + expect(results[0].newSegments[2].duration).toEqual(2) + expect(results[0].newSegments[2].uri).toEqual("/subtitlevtt.vtt?vtturi=test1.webvtt&starttime=4&endtime=6&elapsedtime=0") + + expect(results[1].elapsedTime).toEqual(15.5) + expect(results[1].offset).toEqual(7) + expect(results[1].leftover).toEqual({}) + expect(results[1].newSegments.length).toEqual(4) + expect(results[1].newSegments[0].duration).toEqual(3.5) + expect(results[1].newSegments[0].uri).toEqual("/subtitlevtt.vtt?vtturi=test2.webvtt&previousvtturi=vtturi%3Dtest1.webvtt%26starttime%3D6%26endtime%3D7%26elapsedtime%3D0&starttime=0&endtime=2.5&elapsedtime=7") + done(); + }); + }); + it("generate subtitle sequences type A", (done) => { + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsFalse); + let mockSequence = { + duration: 10, + timelinePosition: 0, + cue: null, + uri: "test" + }; + let sequences = {}; + const groupId = "text"; + const lang = "sv"; + sequences[groupId] = {}; + sequences[groupId][lang] = []; + for (let i = 0; i < 10; i++) { + mockSequence.uri = "test" + i + ".vtt"; + const temp = { ...mockSequence }; + sequences[groupId][lang].push(temp); + } + + let result = mockVod.generateSequencesTypeAExtraMedia(sequences, groupId, lang, "subtitle"); + expect(result[0][groupId][lang][0].uri).toEqual("test0.vtt") + expect(result[0][groupId][lang].length).toEqual(5) + expect(result[0][groupId][lang][4].uri).toEqual("test4.vtt") + + expect(result[5][groupId][lang][0].uri).toEqual("test5.vtt") + expect(result[5][groupId][lang].length).toEqual(5) + expect(result[5][groupId][lang][4].uri).toEqual("test9.vtt") + + done(); + + + }); + it("generate subtitle sequences type B", (done) => { + mockVod = new HLSVod("http://mock.com/mock.m3u8", null, 0, 0, null, hlsOptsAlwaysNewSegmentsFalse); + let mockSequence = { + duration: 10, + timelinePosition: 0, + cue: null, + uri: "test" + }; + let sequences = {}; + const groupId = "text"; + const lang = "sv"; + sequences[groupId] = {}; + sequences[groupId][lang] = []; + for (let i = 0; i < 10; i++) { + mockSequence.uri = "test" + i + ".vtt"; + const temp = { ...mockSequence }; + sequences[groupId][lang].push(temp); + } + + let result = mockVod.generateSequencesTypeBExtraMedia(sequences, groupId, lang, "subtitle"); + expect(result[0][groupId][lang][0].uri).toEqual("test0.vtt") + expect(result[0][groupId][lang].length).toEqual(5) + expect(result[0][groupId][lang][4].uri).toEqual("test4.vtt") + + expect(result[5][groupId][lang][0].uri).toEqual("test5.vtt") + expect(result[5][groupId][lang].length).toEqual(5) + expect(result[5][groupId][lang][4].uri).toEqual("test9.vtt") + + done(); + }); + }); +}); \ No newline at end of file diff --git a/testvectors/hls_subs/b160000-english.m3u8 b/testvectors/hls_subs/b160000-english.m3u8 new file mode 100644 index 0000000..dc8b77c --- /dev/null +++ b/testvectors/hls_subs/b160000-english.m3u8 @@ -0,0 +1,224 @@ +#EXTM3U +#EXT-X-VERSION:3 +#EXT-X-TARGETDURATION:6 +#EXT-X-MEDIA-SEQUENCE:0 +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_0.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_1.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_2.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_3.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_4.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_5.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_6.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_7.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_8.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_9.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_10.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_11.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_12.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_13.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_14.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_15.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_16.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_17.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_18.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_19.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_20.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_21.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_22.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_23.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_24.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_25.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_26.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_27.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_28.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_29.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_30.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_31.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_32.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_33.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_34.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_35.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_36.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_37.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_38.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_39.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_40.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_41.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_42.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_43.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_44.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_45.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_46.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_47.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_48.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_49.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_50.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_51.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_52.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_53.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_54.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_55.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_56.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_57.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_58.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_59.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_60.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_61.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_62.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_63.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_64.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_65.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_66.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_67.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_68.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_69.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_70.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_71.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_72.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_73.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_74.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_75.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_76.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_77.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_78.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_79.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_80.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_81.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_82.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_83.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_84.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_85.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_86.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_87.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_88.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_89.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_90.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_91.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_92.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_93.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_94.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_95.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_96.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_97.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_98.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_99.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_100.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_101.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_102.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_103.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_104.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_105.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_106.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_107.aac +# #EXTINF:5.827, +# media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_108.aac +#EXT-X-ENDLIST + diff --git a/testvectors/hls_subs/b2962000-video.m3u8 b/testvectors/hls_subs/b2962000-video.m3u8 new file mode 100644 index 0000000..e434601 --- /dev/null +++ b/testvectors/hls_subs/b2962000-video.m3u8 @@ -0,0 +1,223 @@ +#EXTM3U +#EXT-X-VERSION:3 +#EXT-X-TARGETDURATION:6 +#EXT-X-MEDIA-SEQUENCE:0 +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_0.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_1.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_2.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_3.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_4.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_5.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_6.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_7.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_8.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_9.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_10.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_11.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_12.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_13.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_14.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_15.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_16.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_17.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_18.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_19.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_20.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_21.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_22.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_23.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_24.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_25.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_26.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_27.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_28.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_29.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_30.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_31.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_32.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_33.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_34.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_35.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_36.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_37.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_38.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_39.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_40.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_41.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_42.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_43.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_44.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_45.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_46.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_47.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_48.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_49.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_50.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_51.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_52.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_53.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_54.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_55.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_56.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_57.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_58.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_59.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_60.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_61.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_62.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_63.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_64.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_65.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_66.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_67.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_68.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_69.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_70.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_71.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_72.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_73.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_74.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_75.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_76.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_77.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_78.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_79.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_80.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_81.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_82.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_83.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_84.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_85.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_86.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_87.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_88.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_89.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_90.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_91.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_92.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_93.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_94.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_95.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_96.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_97.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_98.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_99.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_100.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_101.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_102.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_103.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_104.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_105.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_106.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_107.ts +# #EXTINF:5.75, +# media_w1204859437_b2962000_vo_slen_t64TWFpbg==_108.ts +#EXT-X-ENDLIST \ No newline at end of file diff --git a/testvectors/hls_subs/chinese-ed.m3u8 b/testvectors/hls_subs/chinese-ed.m3u8 new file mode 100644 index 0000000..004d32f --- /dev/null +++ b/testvectors/hls_subs/chinese-ed.m3u8 @@ -0,0 +1,13 @@ +#EXTM3U +#EXT-X-VERSION:3 +#EXT-X-TARGETDURATION:150 +#EXT-X-MEDIA-SEQUENCE:0 +#EXTINF:150.0, +subtitlechunk_lzho_w2018715716_b160000_slen_t64RW5nbGlzaA==_0.webvtt +#EXTINF:150.0, +subtitlechunk_lzho_w2018715716_b160000_slen_t64RW5nbGlzaA==_25.webvtt +#EXTINF:150.0, +subtitlechunk_lzho_w2018715716_b160000_slen_t64RW5nbGlzaA==_50.webvtt +#EXTINF:150.0, +subtitlechunk_lzho_w2018715716_b160000_slen_t64RW5nbGlzaA==_75.webvtt +#EXT-X-ENDLIST \ No newline at end of file diff --git a/testvectors/hls_subs/french-ed.m3u8 b/testvectors/hls_subs/french-ed.m3u8 new file mode 100644 index 0000000..35a0865 --- /dev/null +++ b/testvectors/hls_subs/french-ed.m3u8 @@ -0,0 +1,13 @@ +#EXTM3U +#EXT-X-VERSION:3 +#EXT-X-TARGETDURATION:150 +#EXT-X-MEDIA-SEQUENCE:0 +#EXTINF:150.0, +subtitlechunk_lfra_w1588523518_b160000_slen_t64RW5nbGlzaA==_0.webvtt +#EXTINF:150.0, +subtitlechunk_lfra_w1588523518_b160000_slen_t64RW5nbGlzaA==_25.webvtt +#EXTINF:150.0, +subtitlechunk_lfra_w1588523518_b160000_slen_t64RW5nbGlzaA==_50.webvtt +#EXTINF:150.0, +subtitlechunk_lfra_w1588523518_b160000_slen_t64RW5nbGlzaA==_75.webvtt +#EXT-X-ENDLIST \ No newline at end of file diff --git a/testvectors/hls_subs/master.m3u8 b/testvectors/hls_subs/master.m3u8 new file mode 100644 index 0000000..d198664 --- /dev/null +++ b/testvectors/hls_subs/master.m3u8 @@ -0,0 +1,7 @@ +#EXTM3U +#EXT-X-VERSION:3 +#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Chinese",FORCED=NO,AUTOSELECT=YES,URI="chinese-ed.m3u8",LANGUAGE="zh" +#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="French",FORCED=NO,AUTOSELECT=YES,URI="french-ed.m3u8",LANGUAGE="fr" +#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",LANGUAGE="en",NAME="Commentary (eng)",DEFAULT=NO,AUTOSELECT=NO,URI="b160000-english.m3u8" +#EXT-X-STREAM-INF:BANDWIDTH=2962000,NAME="Main",CODECS="avc1.66.30",RESOLUTION=1280x720,AUDIO="aac",SUBTITLES="subs" +media/b2962000-video.m3u8 diff --git a/testvectors/hls_subs2/master.m3u8 b/testvectors/hls_subs2/master.m3u8 new file mode 100644 index 0000000..b8f229c --- /dev/null +++ b/testvectors/hls_subs2/master.m3u8 @@ -0,0 +1,7 @@ +#EXTM3U +#CSM +#EXT-X-VERSION:6 +#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-aacl-128",NAME="audio",DEFAULT=YES,AUTOSELECT=YES,CHANNELS="2",URI="https://csm-e-cetv4aeun1vpr208-0a16a798349bde822.tls1.yospace.com/csm/builder/580403973,580834238,580403977,584881041,proxy.1,568596032,580834218,589838621,589113936,589490258,568596040,588573338,584881041,proxy.2,568596048,584056237,589113954,585977473,586708464,583280328,584048666,589114198,568596083,588194801,584881049,proxy.3,580403973,586707803,586708191,580403977,590324951,584881045,proxy.4/8.m3u8?yo.p.si=csm-e-cetv4aeun1vpr208-0a16a798349bde822-68-1674741215208&yo.p.ci=547009993&yo.p.fn=LzNlNTQyNDA1LTU4M2ItNGVkYy05M2FiLWVjYTg2NDI3ZDE0OC9hYjkyYTY5MC02MmRlLTExZWQtYWE1MS1jOTZmYjRmOTQzNGZfMjAzMzcyMDkuaXNtLy5tM3U4&yo.p.bp=VMAP&yo.p.cu=,Q1ZEWQ==,RkZqQQ==,SGVWdw==&yo.av=3&s=TV4Play%2FHem+%26+fritid%2FSveriges+m%C3%A4sterkock&dcid=d918a1f3-0bcc-438b-a205-b2a87ad0daf6&t=long_form%2CTV4Play%2CHem+%26+fritid%2CSveriges+m%C3%A4sterkock%2CSveriges+m%C3%A4sterkock+-+Efter+st%C3%A4ngning+del+10%2Cextraprogram%2C359623%2C13314774%2Cns_st_mv-dev&ss.exp=20230127135334&gdpr_consent=1&pid=5912835144af4a462e76fd58a353b7599a0eb745da&ss.sig=058d860871a3e84ce7a72b8dea257fa59e6bb011&vimondId=13314774&gdpr=1" +#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="textstream",LANGUAGE="sv",NAME="Svenska",DEFAULT=YES,AUTOSELECT=YES,FORCED=NO,URI="subs.m3u8" +#EXT-X-STREAM-INF:BANDWIDTH=455000,CODECS="avc1.4D400D,mp4a.40.2",RESOLUTION=384x216,VIDEO-RANGE=SDR,FRAME-RATE=25.000,SUBTITLES="textstream",AUDIO="audio-aacl-128" +media/video.m3u8 diff --git a/testvectors/hls_subs2/subs.m3u8 b/testvectors/hls_subs2/subs.m3u8 new file mode 100644 index 0000000..313c79e --- /dev/null +++ b/testvectors/hls_subs2/subs.m3u8 @@ -0,0 +1,1632 @@ +#EXTM3U +#EXT-X-TARGETDURATION:4 +#EXT-X-VERSION:6 +#EXT-X-PLAYLIST-TYPE:VOD +#EXT-X-INDEPENDENT-SEGMENTS +#EXTINF:3, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.48, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:3, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:1.32, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-1.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-2.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-3.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-4.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-5.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-6.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-7.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-8.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-9.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-10.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-11.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-12.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-13.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-14.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-15.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-16.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-17.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-18.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-19.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-20.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-21.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-22.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-23.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-24.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-25.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-26.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-27.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-28.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-29.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-30.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-31.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-32.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-33.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-34.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-35.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-36.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-37.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-38.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-39.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-40.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-41.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-42.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-43.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-44.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-45.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-46.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-47.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-48.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-49.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-50.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-51.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-52.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-53.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-54.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-55.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-56.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-57.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-58.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-59.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-60.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-61.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-62.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-63.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-64.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-65.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-66.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-67.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-68.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-69.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-70.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-71.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-72.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-73.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-74.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-75.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-76.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-77.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-78.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-79.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-80.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-81.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-82.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-83.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-84.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-85.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-86.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-87.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-88.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-89.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-90.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-91.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-92.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-93.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-94.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-95.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-96.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-97.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-98.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-99.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-100.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-101.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-102.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-103.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-104.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-105.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-106.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-107.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-108.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-109.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-110.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-111.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-112.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-113.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-114.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-115.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-116.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-117.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-118.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-119.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-120.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-121.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-122.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-123.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-124.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-125.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-126.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-127.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-128.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-129.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-130.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-131.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-132.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-133.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-134.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-135.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-136.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-137.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-138.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-139.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-140.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-141.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-142.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-143.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-144.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-145.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-146.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-147.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-148.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-149.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-150.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-151.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-152.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-153.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-154.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-155.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-156.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-157.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-158.webvtt +#EXTINF:3.8, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-159.webvtt +#EXT-X-DISCONTINUITY +#EXTINF:3, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:0.8, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.48, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.48, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:0.8, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:3, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:0.8, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:1.32, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:3.88, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-160.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-161.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-162.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-163.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-164.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-165.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-166.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-167.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-168.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-169.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-170.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-171.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-172.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-173.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-174.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-175.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-176.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-177.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-178.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-179.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-180.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-181.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-182.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-183.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-184.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-185.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-186.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-187.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-188.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-189.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-190.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-191.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-192.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-193.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-194.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-195.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-196.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-197.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-198.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-199.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-200.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-201.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-202.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-203.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-204.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-205.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-206.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-207.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-208.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-209.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-210.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-211.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-212.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-213.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-214.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-215.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-216.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-217.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-218.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-219.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-220.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-221.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-222.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-223.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-224.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-225.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-226.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-227.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-228.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-229.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-230.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-231.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-232.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-233.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-234.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-235.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-236.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-237.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-238.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-239.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-240.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-241.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-242.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-243.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-244.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-245.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-246.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-247.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-248.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-249.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-250.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-251.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-252.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-253.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-254.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-255.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-256.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-257.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-258.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-259.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-260.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-261.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-262.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-263.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-264.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-265.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-266.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-267.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-268.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-269.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-270.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-271.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-272.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-273.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-274.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-275.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-276.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-277.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-278.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-279.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-280.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-281.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-282.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-283.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-284.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-285.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-286.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-287.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-288.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-289.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-290.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-291.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-292.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-293.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-294.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-295.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-296.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-297.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-298.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-299.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-300.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-301.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-302.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-303.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-304.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-305.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-306.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-307.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-308.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-309.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-310.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-311.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-312.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-313.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-314.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-315.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-316.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-317.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-318.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-319.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-320.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-321.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-322.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-323.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-324.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-325.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-326.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-327.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-328.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-329.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-330.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-331.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-332.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-333.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-334.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-335.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-336.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-337.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-338.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-339.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-340.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-341.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-342.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-343.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-344.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-345.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-346.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-347.webvtt +#EXTINF:0.96, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-348.webvtt +#EXT-X-DISCONTINUITY +#EXTINF:3, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:0.8, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.48, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.48, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:2.32, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:2.32, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:0.8, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.48, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:3, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:0.8, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:1.32, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:2.88, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-349.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-350.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-351.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-352.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-353.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-354.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-355.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-356.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-357.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-358.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-359.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-360.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-361.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-362.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-363.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-364.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-365.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-366.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-367.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-368.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-369.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-370.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-371.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-372.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-373.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-374.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-375.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-376.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-377.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-378.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-379.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-380.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-381.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-382.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-383.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-384.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-385.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-386.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-387.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-388.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-389.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-390.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-391.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-392.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-393.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-394.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-395.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-396.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-397.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-398.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-399.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-400.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-401.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-402.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-403.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-404.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-405.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-406.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-407.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-408.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-409.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-410.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-411.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-412.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-413.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-414.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-415.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-416.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-417.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-418.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-419.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-420.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-421.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-422.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-423.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-424.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-425.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-426.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-427.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-428.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-429.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-430.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-431.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-432.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-433.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-434.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-435.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-436.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-437.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-438.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-439.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-440.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-441.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-442.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-443.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-444.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-445.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-446.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-447.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-448.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-449.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-450.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-451.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-452.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-453.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-454.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-455.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-456.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-457.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-458.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-459.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-460.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-461.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-462.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-463.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-464.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-465.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-466.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-467.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-468.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-469.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-470.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-471.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-472.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-473.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-474.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-475.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-476.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-477.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-478.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-479.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-480.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-481.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-482.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-483.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-484.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-485.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-486.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-487.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-488.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-489.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-490.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-491.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-492.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-493.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-494.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-495.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-496.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-497.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-498.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-499.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-500.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-501.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-502.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-503.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-504.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-505.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-506.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-507.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-508.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-509.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-510.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-511.webvtt +#EXTINF:0.88, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-512.webvtt +#EXT-X-DISCONTINUITY +#EXTINF:3, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:0.8, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.48, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:3, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.12, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:3.84, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXTINF:1.32, +https://d3t8zrj2x5ol3r.cloudfront.net/u/file~text_vtt~dummy.vtt/1/s/webvtt.vtt +#EXT-X-DISCONTINUITY +#EXTINF:2.96, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-513.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-514.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-515.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-516.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-517.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-518.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-519.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-520.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-521.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-522.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-523.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-524.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-525.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-526.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-527.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-528.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-529.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-530.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-531.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-532.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-533.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-534.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-535.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-536.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-537.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-538.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-539.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-540.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-541.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-542.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-543.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-544.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-545.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-546.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-547.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-548.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-549.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-550.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-551.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-552.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-553.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-554.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-555.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-556.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-557.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-558.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-559.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-560.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-561.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-562.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-563.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-564.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-565.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-566.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-567.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-568.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-569.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-570.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-571.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-572.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-573.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-574.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-575.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-576.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-577.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-578.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-579.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-580.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-581.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-582.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-583.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-584.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-585.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-586.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-587.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-588.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-589.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-590.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-591.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-592.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-593.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-594.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-595.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-596.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-597.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-598.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-599.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-600.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-601.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-602.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-603.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-604.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-605.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-606.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-607.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-608.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-609.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-610.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-611.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-612.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-613.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-614.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-615.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-616.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-617.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-618.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-619.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-620.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-621.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-622.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-623.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-624.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-625.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-626.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-627.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-628.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-629.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-630.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-631.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-632.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-633.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-634.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-635.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-636.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-637.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-638.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-639.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-640.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-641.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-642.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-643.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-644.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-645.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-646.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-647.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-648.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-649.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-650.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-651.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-652.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-653.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-654.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-655.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-656.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-657.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-658.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-659.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-660.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-661.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-662.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-663.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-664.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-665.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-666.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-667.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-668.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-669.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-670.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-671.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-672.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-673.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-674.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-675.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-676.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-677.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-678.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-679.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-680.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-681.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-682.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-683.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-684.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-685.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-686.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-687.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-688.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-689.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-690.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-691.webvtt +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-692.webvtt +#EXTINF:1.08, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-textstream_swe=1000-693.webvtt +#EXT-X-ENDLIST diff --git a/testvectors/hls_subs2/video.m3u8 b/testvectors/hls_subs2/video.m3u8 new file mode 100644 index 0000000..58a6297 --- /dev/null +++ b/testvectors/hls_subs2/video.m3u8 @@ -0,0 +1,1665 @@ +#EXTM3U +#EXT-X-TARGETDURATION:4 +#EXT-X-VERSION:6 +#EXT-X-PLAYLIST-TYPE:VOD +#EXT-X-INDEPENDENT-SEGMENTS +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/3/7/9/3/04085/u-6600-a-128-1-i.mp4" +#EXTINF:3, +https://vod.streaming.a2d.tv/ys/3/7/9/3/04085/u-6600-a-128-1-0.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/8/3/2/4/38085/u-6600-a-128-1-i.mp4" +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/8/3/2/4/38085/u-6600-a-128-1-0.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/8/3/2/4/38085/u-6600-a-128-1-1.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/8/3/2/4/38085/u-6600-a-128-1-2.mp4 +#EXTINF:3.48, +https://vod.streaming.a2d.tv/ys/8/3/2/4/38085/u-6600-a-128-1-3.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/7/7/9/3/04085/u-6600-a-128-1-i.mp4" +#EXTINF:3, +https://vod.streaming.a2d.tv/ys/7/7/9/3/04085/u-6600-a-128-1-0.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/1/4/0/1/88485/u-6600-a-128-1-i.mp4" +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/1/4/0/1/88485/u-6600-a-128-1-0.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/1/4/0/1/88485/u-6600-a-128-1-1.mp4 +#EXTINF:1.32, +https://vod.streaming.a2d.tv/ys/1/4/0/1/88485/u-6600-a-128-1-2.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000.m4s" +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-1.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-2.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-3.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-4.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-5.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-6.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-7.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-8.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-9.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-10.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-11.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-12.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-13.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-14.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-15.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-16.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-17.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-18.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-19.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-20.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-21.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-22.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-23.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-24.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-25.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-26.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-27.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-28.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-29.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-30.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-31.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-32.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-33.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-34.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-35.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-36.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-37.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-38.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-39.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-40.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-41.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-42.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-43.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-44.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-45.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-46.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-47.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-48.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-49.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-50.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-51.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-52.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-53.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-54.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-55.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-56.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-57.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-58.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-59.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-60.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-61.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-62.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-63.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-64.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-65.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-66.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-67.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-68.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-69.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-70.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-71.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-72.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-73.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-74.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-75.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-76.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-77.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-78.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-79.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-80.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-81.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-82.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-83.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-84.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-85.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-86.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-87.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-88.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-89.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-90.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-91.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-92.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-93.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-94.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-95.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-96.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-97.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-98.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-99.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-100.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-101.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-102.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-103.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-104.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-105.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-106.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-107.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-108.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-109.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-110.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-111.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-112.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-113.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-114.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-115.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-116.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-117.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-118.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-119.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-120.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-121.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-122.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-123.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-124.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-125.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-126.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-127.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-128.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-129.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-130.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-131.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-132.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-133.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-134.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-135.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-136.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-137.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-138.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-139.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-140.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-141.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-142.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-143.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-144.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-145.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-146.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-147.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-148.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-149.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-150.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-151.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-152.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-153.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-154.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-155.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-156.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-157.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-158.m4s +#EXTINF:3.819, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-159.m4s +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/2/3/0/6/95865/u-6600-a-128-1-i.mp4" +#EXTINF:3, +https://vod.streaming.a2d.tv/ys/2/3/0/6/95865/u-6600-a-128-1-0.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/8/1/2/4/38085/u-6600-a-128-1-i.mp4" +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/8/1/2/4/38085/u-6600-a-128-1-0.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/8/1/2/4/38085/u-6600-a-128-1-1.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/8/1/2/4/38085/u-6600-a-128-1-2.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/8/1/2/4/38085/u-6600-a-128-1-3.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/8/1/2/4/38085/u-6600-a-128-1-4.mp4 +#EXTINF:0.8, +https://vod.streaming.a2d.tv/ys/8/1/2/4/38085/u-6600-a-128-1-5.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/1/2/6/8/38985/u-6600-a-128-1-i.mp4" +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/1/2/6/8/38985/u-6600-a-128-1-0.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/1/2/6/8/38985/u-6600-a-128-1-1.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/1/2/6/8/38985/u-6600-a-128-1-2.mp4 +#EXTINF:3.48, +https://vod.streaming.a2d.tv/ys/1/2/6/8/38985/u-6600-a-128-1-3.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/6/3/9/3/11985/u-6600-a-128-1-i.mp4" +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/6/3/9/3/11985/u-6600-a-128-1-0.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/6/3/9/3/11985/u-6600-a-128-1-1.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/6/3/9/3/11985/u-6600-a-128-1-2.mp4 +#EXTINF:3.48, +https://vod.streaming.a2d.tv/ys/6/3/9/3/11985/u-6600-a-128-1-3.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/8/5/2/0/94985/u-6600-a-128-1-i.mp4" +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/8/5/2/0/94985/u-6600-a-128-1-0.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/8/5/2/0/94985/u-6600-a-128-1-1.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/8/5/2/0/94985/u-6600-a-128-1-2.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/8/5/2/0/94985/u-6600-a-128-1-3.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/8/5/2/0/94985/u-6600-a-128-1-4.mp4 +#EXTINF:0.8, +https://vod.streaming.a2d.tv/ys/8/5/2/0/94985/u-6600-a-128-1-5.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/0/4/0/6/95865/u-6600-a-128-1-i.mp4" +#EXTINF:3, +https://vod.streaming.a2d.tv/ys/0/4/0/6/95865/u-6600-a-128-1-0.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/8/3/3/3/75885/u-6600-a-128-1-i.mp4" +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/8/3/3/3/75885/u-6600-a-128-1-0.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/8/3/3/3/75885/u-6600-a-128-1-1.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/8/3/3/3/75885/u-6600-a-128-1-2.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/8/3/3/3/75885/u-6600-a-128-1-3.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/8/3/3/3/75885/u-6600-a-128-1-4.mp4 +#EXTINF:0.8, +https://vod.streaming.a2d.tv/ys/8/3/3/3/75885/u-6600-a-128-1-5.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/1/4/0/1/88485/u-6600-a-128-1-i.mp4" +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/1/4/0/1/88485/u-6600-a-128-1-0.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/1/4/0/1/88485/u-6600-a-128-1-1.mp4 +#EXTINF:1.32, +https://vod.streaming.a2d.tv/ys/1/4/0/1/88485/u-6600-a-128-1-2.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000.m4s" +#EXTINF:3.861, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-160.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-161.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-162.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-163.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-164.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-165.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-166.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-167.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-168.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-169.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-170.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-171.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-172.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-173.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-174.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-175.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-176.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-177.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-178.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-179.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-180.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-181.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-182.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-183.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-184.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-185.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-186.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-187.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-188.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-189.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-190.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-191.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-192.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-193.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-194.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-195.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-196.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-197.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-198.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-199.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-200.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-201.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-202.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-203.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-204.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-205.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-206.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-207.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-208.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-209.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-210.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-211.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-212.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-213.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-214.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-215.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-216.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-217.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-218.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-219.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-220.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-221.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-222.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-223.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-224.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-225.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-226.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-227.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-228.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-229.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-230.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-231.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-232.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-233.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-234.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-235.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-236.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-237.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-238.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-239.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-240.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-241.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-242.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-243.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-244.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-245.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-246.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-247.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-248.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-249.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-250.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-251.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-252.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-253.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-254.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-255.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-256.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-257.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-258.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-259.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-260.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-261.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-262.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-263.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-264.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-265.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-266.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-267.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-268.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-269.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-270.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-271.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-272.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-273.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-274.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-275.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-276.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-277.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-278.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-279.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-280.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-281.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-282.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-283.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-284.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-285.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-286.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-287.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-288.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-289.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-290.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-291.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-292.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-293.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-294.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-295.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-296.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-297.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-298.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-299.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-300.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-301.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-302.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-303.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-304.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-305.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-306.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-307.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-308.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-309.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-310.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-311.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-312.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-313.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-314.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-315.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-316.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-317.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-318.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-319.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-320.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-321.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-322.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-323.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-324.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-325.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-326.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-327.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-328.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-329.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-330.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-331.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-332.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-333.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-334.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-335.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-336.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-337.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-338.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-339.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-340.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-341.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-342.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-343.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-344.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-345.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-346.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-347.m4s +#EXTINF:0.96, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-348.m4s +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/8/4/0/6/95865/u-6600-a-128-1-i.mp4" +#EXTINF:3, +https://vod.streaming.a2d.tv/ys/8/4/0/6/95865/u-6600-a-128-1-0.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/7/3/2/6/50485/u-6600-a-128-1-i.mp4" +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/7/3/2/6/50485/u-6600-a-128-1-0.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/7/3/2/6/50485/u-6600-a-128-1-1.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/7/3/2/6/50485/u-6600-a-128-1-2.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/7/3/2/6/50485/u-6600-a-128-1-3.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/7/3/2/6/50485/u-6600-a-128-1-4.mp4 +#EXTINF:0.8, +https://vod.streaming.a2d.tv/ys/7/3/2/6/50485/u-6600-a-128-1-5.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/4/5/9/3/11985/u-6600-a-128-1-i.mp4" +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/4/5/9/3/11985/u-6600-a-128-1-0.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/4/5/9/3/11985/u-6600-a-128-1-1.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/4/5/9/3/11985/u-6600-a-128-1-2.mp4 +#EXTINF:3.48, +https://vod.streaming.a2d.tv/ys/4/5/9/3/11985/u-6600-a-128-1-3.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/3/7/4/7/79585/u-6600-a-128-1-i.mp4" +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/3/7/4/7/79585/u-6600-a-128-1-0.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/3/7/4/7/79585/u-6600-a-128-1-1.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/3/7/4/7/79585/u-6600-a-128-1-2.mp4 +#EXTINF:3.48, +https://vod.streaming.a2d.tv/ys/3/7/4/7/79585/u-6600-a-128-1-3.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/4/6/4/8/07685/u-6600-a-128-1-i.mp4" +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/4/6/4/8/07685/u-6600-a-128-1-0.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/4/6/4/8/07685/u-6600-a-128-1-1.mp4 +#EXTINF:2.32, +https://vod.streaming.a2d.tv/ys/4/6/4/8/07685/u-6600-a-128-1-2.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/8/2/3/0/82385/u-6600-a-128-1-i.mp4" +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/8/2/3/0/82385/u-6600-a-128-1-0.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/8/2/3/0/82385/u-6600-a-128-1-1.mp4 +#EXTINF:2.32, +https://vod.streaming.a2d.tv/ys/8/2/3/0/82385/u-6600-a-128-1-2.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/6/6/6/8/40485/u-6600-a-128-1-i.mp4" +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/6/6/6/8/40485/u-6600-a-128-1-0.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/6/6/6/8/40485/u-6600-a-128-1-1.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/6/6/6/8/40485/u-6600-a-128-1-2.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/6/6/6/8/40485/u-6600-a-128-1-3.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/6/6/6/8/40485/u-6600-a-128-1-4.mp4 +#EXTINF:0.8, +https://vod.streaming.a2d.tv/ys/6/6/6/8/40485/u-6600-a-128-1-5.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/8/9/1/4/11985/u-6600-a-128-1-i.mp4" +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/8/9/1/4/11985/u-6600-a-128-1-0.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/8/9/1/4/11985/u-6600-a-128-1-1.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/8/9/1/4/11985/u-6600-a-128-1-2.mp4 +#EXTINF:3.48, +https://vod.streaming.a2d.tv/ys/8/9/1/4/11985/u-6600-a-128-1-3.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/3/8/0/6/95865/u-6600-a-128-1-i.mp4" +#EXTINF:3, +https://vod.streaming.a2d.tv/ys/3/8/0/6/95865/u-6600-a-128-1-0.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/1/0/8/4/91885/u-6600-a-128-1-i.mp4" +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/1/0/8/4/91885/u-6600-a-128-1-0.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/1/0/8/4/91885/u-6600-a-128-1-1.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/1/0/8/4/91885/u-6600-a-128-1-2.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/1/0/8/4/91885/u-6600-a-128-1-3.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/1/0/8/4/91885/u-6600-a-128-1-4.mp4 +#EXTINF:0.8, +https://vod.streaming.a2d.tv/ys/1/0/8/4/91885/u-6600-a-128-1-5.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/9/4/0/1/88485/u-6600-a-128-1-i.mp4" +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/9/4/0/1/88485/u-6600-a-128-1-0.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/9/4/0/1/88485/u-6600-a-128-1-1.mp4 +#EXTINF:1.32, +https://vod.streaming.a2d.tv/ys/9/4/0/1/88485/u-6600-a-128-1-2.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000.m4s" +#EXTINF:2.88, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-349.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-350.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-351.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-352.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-353.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-354.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-355.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-356.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-357.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-358.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-359.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-360.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-361.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-362.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-363.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-364.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-365.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-366.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-367.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-368.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-369.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-370.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-371.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-372.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-373.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-374.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-375.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-376.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-377.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-378.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-379.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-380.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-381.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-382.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-383.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-384.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-385.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-386.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-387.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-388.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-389.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-390.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-391.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-392.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-393.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-394.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-395.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-396.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-397.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-398.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-399.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-400.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-401.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-402.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-403.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-404.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-405.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-406.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-407.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-408.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-409.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-410.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-411.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-412.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-413.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-414.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-415.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-416.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-417.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-418.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-419.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-420.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-421.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-422.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-423.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-424.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-425.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-426.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-427.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-428.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-429.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-430.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-431.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-432.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-433.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-434.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-435.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-436.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-437.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-438.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-439.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-440.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-441.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-442.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-443.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-444.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-445.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-446.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-447.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-448.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-449.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-450.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-451.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-452.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-453.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-454.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-455.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-456.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-457.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-458.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-459.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-460.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-461.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-462.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-463.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-464.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-465.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-466.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-467.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-468.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-469.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-470.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-471.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-472.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-473.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-474.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-475.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-476.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-477.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-478.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-479.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-480.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-481.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-482.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-483.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-484.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-485.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-486.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-487.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-488.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-489.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-490.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-491.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-492.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-493.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-494.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-495.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-496.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-497.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-498.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-499.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-500.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-501.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-502.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-503.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-504.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-505.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-506.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-507.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-508.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-509.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-510.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-511.m4s +#EXTINF:0.896, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-512.m4s +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/3/7/9/3/04085/u-6600-a-128-1-i.mp4" +#EXTINF:3, +https://vod.streaming.a2d.tv/ys/3/7/9/3/04085/u-6600-a-128-1-0.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/3/0/8/7/07685/u-6600-a-128-1-i.mp4" +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/3/0/8/7/07685/u-6600-a-128-1-0.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/3/0/8/7/07685/u-6600-a-128-1-1.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/3/0/8/7/07685/u-6600-a-128-1-2.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/3/0/8/7/07685/u-6600-a-128-1-3.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/3/0/8/7/07685/u-6600-a-128-1-4.mp4 +#EXTINF:0.8, +https://vod.streaming.a2d.tv/ys/3/0/8/7/07685/u-6600-a-128-1-5.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/1/9/1/8/07685/u-6600-a-128-1-i.mp4" +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/1/9/1/8/07685/u-6600-a-128-1-0.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/1/9/1/8/07685/u-6600-a-128-1-1.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/1/9/1/8/07685/u-6600-a-128-1-2.mp4 +#EXTINF:3.48, +https://vod.streaming.a2d.tv/ys/1/9/1/8/07685/u-6600-a-128-1-3.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/7/7/9/3/04085/u-6600-a-128-1-i.mp4" +#EXTINF:3, +https://vod.streaming.a2d.tv/ys/7/7/9/3/04085/u-6600-a-128-1-0.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/1/5/9/4/23095/u-6600-a-128-1-i.mp4" +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/1/5/9/4/23095/u-6600-a-128-1-0.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/1/5/9/4/23095/u-6600-a-128-1-1.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/1/5/9/4/23095/u-6600-a-128-1-2.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/1/5/9/4/23095/u-6600-a-128-1-3.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/1/5/9/4/23095/u-6600-a-128-1-4.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/1/5/9/4/23095/u-6600-a-128-1-5.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/1/5/9/4/23095/u-6600-a-128-1-6.mp4 +#EXTINF:3.12, +https://vod.streaming.a2d.tv/ys/1/5/9/4/23095/u-6600-a-128-1-7.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/ys/5/4/0/1/88485/u-6600-a-128-1-i.mp4" +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/5/4/0/1/88485/u-6600-a-128-1-0.mp4 +#EXTINF:3.84, +https://vod.streaming.a2d.tv/ys/5/4/0/1/88485/u-6600-a-128-1-1.mp4 +#EXTINF:1.32, +https://vod.streaming.a2d.tv/ys/5/4/0/1/88485/u-6600-a-128-1-2.mp4 +#EXT-X-DISCONTINUITY +#EXT-X-MAP:URI="https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000.m4s" +#EXTINF:2.944, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-513.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-514.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-515.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-516.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-517.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-518.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-519.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-520.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-521.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-522.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-523.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-524.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-525.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-526.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-527.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-528.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-529.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-530.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-531.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-532.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-533.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-534.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-535.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-536.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-537.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-538.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-539.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-540.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-541.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-542.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-543.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-544.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-545.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-546.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-547.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-548.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-549.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-550.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-551.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-552.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-553.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-554.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-555.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-556.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-557.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-558.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-559.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-560.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-561.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-562.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-563.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-564.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-565.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-566.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-567.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-568.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-569.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-570.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-571.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-572.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-573.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-574.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-575.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-576.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-577.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-578.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-579.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-580.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-581.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-582.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-583.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-584.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-585.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-586.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-587.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-588.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-589.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-590.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-591.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-592.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-593.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-594.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-595.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-596.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-597.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-598.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-599.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-600.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-601.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-602.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-603.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-604.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-605.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-606.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-607.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-608.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-609.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-610.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-611.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-612.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-613.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-614.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-615.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-616.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-617.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-618.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-619.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-620.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-621.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-622.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-623.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-624.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-625.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-626.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-627.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-628.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-629.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-630.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-631.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-632.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-633.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-634.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-635.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-636.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-637.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-638.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-639.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-640.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-641.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-642.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-643.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-644.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-645.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-646.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-647.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-648.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-649.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-650.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-651.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-652.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-653.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-654.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-655.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-656.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-657.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-658.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-659.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-660.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-661.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-662.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-663.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-664.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-665.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-666.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-667.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-668.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-669.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-670.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-671.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-672.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-673.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-674.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-675.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-676.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-677.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-678.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-679.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-680.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-681.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-682.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-683.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-684.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-685.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-686.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-687.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-688.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-689.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-690.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-691.m4s +#EXTINF:3.84, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-692.m4s +#EXTINF:3.499, +https://vod.streaming.a2d.tv/3e542405-583b-4edc-93ab-eca86427d148/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209.ism/hls/ab92a690-62de-11ed-aa51-c96fb4f9434f_20337209-audio=128000-693.m4s +#EXT-X-ENDLIST diff --git a/testvectors/hls_subs3/index.m3u8 b/testvectors/hls_subs3/index.m3u8 new file mode 100644 index 0000000..b69ff80 --- /dev/null +++ b/testvectors/hls_subs3/index.m3u8 @@ -0,0 +1,7 @@ +#EXTM3U +#EXT-X-VERSION:6 + +#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="English",FORCED=NO,AUTOSELECT=YES,URI="subs/sub.m3u8",LANGUAGE="en" + +#EXT-X-STREAM-INF:BANDWIDTH=3370400,RESOLUTION=1280x720,CODECS="avc1.64001f,mp4a.40.2",SUBTITLES="subs" +stream_0/index.m3u8 diff --git a/testvectors/hls_subs3/stream_0/index.m3u8 b/testvectors/hls_subs3/stream_0/index.m3u8 new file mode 100644 index 0000000..383ed54 --- /dev/null +++ b/testvectors/hls_subs3/stream_0/index.m3u8 @@ -0,0 +1,23 @@ +#EXTM3U +#EXT-X-VERSION:6 +#EXT-X-TARGETDURATION:4 +#EXT-X-MEDIA-SEQUENCE:0 +#EXT-X-PLAYLIST-TYPE:VOD +#EXT-X-INDEPENDENT-SEGMENTS +#EXTINF:4.000000, +seg-00.ts +#EXTINF:4.000000, +seg-01.ts +#EXTINF:4.000000, +seg-02.ts +#EXTINF:4.000000, +seg-03.ts +#EXTINF:4.000000, +seg-04.ts +#EXTINF:4.000000, +seg-05.ts +#EXTINF:4.000000, +seg-06.ts +#EXTINF:2.000000, +seg-07.ts +#EXT-X-ENDLIST diff --git a/testvectors/hls_subs3/subs/sub.m3u8 b/testvectors/hls_subs3/subs/sub.m3u8 new file mode 100644 index 0000000..b626fa2 --- /dev/null +++ b/testvectors/hls_subs3/subs/sub.m3u8 @@ -0,0 +1,14 @@ +#EXTM3U +#EXT-X-VERSION:3 +#EXT-X-TARGETDURATION:6 +#EXT-X-MEDIA-SEQUENCE:0 +#EXTINF:6.0, +1.webvtt +#EXTINF:6.0, +2.webvtt +#EXTINF:6.0, +3.webvtt +#EXTINF:6.0, +4.webvtt +#EXTINF:6.0, +5.webvtt \ No newline at end of file diff --git a/testvectors/hls_subs4/index.m3u8 b/testvectors/hls_subs4/index.m3u8 new file mode 100644 index 0000000..a539ec3 --- /dev/null +++ b/testvectors/hls_subs4/index.m3u8 @@ -0,0 +1,8 @@ +#EXTM3U +#EXT-X-VERSION:6 + +#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="French",FORCED=NO,AUTOSELECT=YES,URI="subs/sub.m3u8",LANGUAGE="fr" +#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Chinese",FORCED=NO,AUTOSELECT=YES,URI="subs/sub.m3u8",LANGUAGE="zh" + +#EXT-X-STREAM-INF:BANDWIDTH=3370400,RESOLUTION=1280x720,CODECS="avc1.64001f,mp4a.40.2",SUBTITLES="subs" +stream_0/index.m3u8 diff --git a/testvectors/hls_subs4/stream_0/index.m3u8 b/testvectors/hls_subs4/stream_0/index.m3u8 new file mode 100644 index 0000000..383ed54 --- /dev/null +++ b/testvectors/hls_subs4/stream_0/index.m3u8 @@ -0,0 +1,23 @@ +#EXTM3U +#EXT-X-VERSION:6 +#EXT-X-TARGETDURATION:4 +#EXT-X-MEDIA-SEQUENCE:0 +#EXT-X-PLAYLIST-TYPE:VOD +#EXT-X-INDEPENDENT-SEGMENTS +#EXTINF:4.000000, +seg-00.ts +#EXTINF:4.000000, +seg-01.ts +#EXTINF:4.000000, +seg-02.ts +#EXTINF:4.000000, +seg-03.ts +#EXTINF:4.000000, +seg-04.ts +#EXTINF:4.000000, +seg-05.ts +#EXTINF:4.000000, +seg-06.ts +#EXTINF:2.000000, +seg-07.ts +#EXT-X-ENDLIST diff --git a/testvectors/hls_subs4/subs/sub.m3u8 b/testvectors/hls_subs4/subs/sub.m3u8 new file mode 100644 index 0000000..a2e1886 --- /dev/null +++ b/testvectors/hls_subs4/subs/sub.m3u8 @@ -0,0 +1,20 @@ +#EXTM3U +#EXT-X-VERSION:3 +#EXT-X-TARGETDURATION:6 +#EXT-X-MEDIA-SEQUENCE:0 +#EXTINF:4.0, +0.webvtt +#EXTINF:4.0, +1.webvtt +#EXTINF:4.0, +2.webvtt +#EXTINF:4.0, +3.webvtt +#EXTINF:4.0, +4.webvtt +#EXTINF:4.0, +5.webvtt +#EXTINF:4.0, +6.webvtt +#EXTINF:2.0, +7.webvtt \ No newline at end of file diff --git a/testvectors/hls_subs_no_subs/b160000-english.m3u8 b/testvectors/hls_subs_no_subs/b160000-english.m3u8 new file mode 100644 index 0000000..dc8b77c --- /dev/null +++ b/testvectors/hls_subs_no_subs/b160000-english.m3u8 @@ -0,0 +1,224 @@ +#EXTM3U +#EXT-X-VERSION:3 +#EXT-X-TARGETDURATION:6 +#EXT-X-MEDIA-SEQUENCE:0 +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_0.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_1.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_2.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_3.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_4.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_5.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_6.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_7.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_8.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_9.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_10.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_11.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_12.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_13.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_14.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_15.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_16.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_17.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_18.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_19.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_20.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_21.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_22.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_23.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_24.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_25.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_26.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_27.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_28.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_29.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_30.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_31.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_32.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_33.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_34.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_35.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_36.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_37.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_38.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_39.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_40.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_41.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_42.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_43.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_44.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_45.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_46.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_47.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_48.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_49.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_50.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_51.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_52.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_53.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_54.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_55.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_56.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_57.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_58.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_59.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_60.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_61.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_62.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_63.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_64.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_65.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_66.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_67.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_68.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_69.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_70.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_71.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_72.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_73.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_74.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_75.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_76.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_77.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_78.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_79.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_80.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_81.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_82.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_83.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_84.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_85.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_86.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_87.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_88.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_89.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_90.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_91.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_92.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_93.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_94.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_95.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_96.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_97.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_98.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_99.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_100.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_101.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_102.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_103.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_104.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_105.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_106.aac +#EXTINF:6.0, +media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_107.aac +# #EXTINF:5.827, +# media_w1204859437_b160000_ao_slen_t64RW5nbGlzaA==_108.aac +#EXT-X-ENDLIST + diff --git a/testvectors/hls_subs_no_subs/b2962000-video.m3u8 b/testvectors/hls_subs_no_subs/b2962000-video.m3u8 new file mode 100644 index 0000000..e434601 --- /dev/null +++ b/testvectors/hls_subs_no_subs/b2962000-video.m3u8 @@ -0,0 +1,223 @@ +#EXTM3U +#EXT-X-VERSION:3 +#EXT-X-TARGETDURATION:6 +#EXT-X-MEDIA-SEQUENCE:0 +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_0.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_1.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_2.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_3.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_4.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_5.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_6.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_7.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_8.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_9.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_10.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_11.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_12.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_13.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_14.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_15.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_16.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_17.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_18.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_19.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_20.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_21.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_22.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_23.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_24.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_25.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_26.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_27.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_28.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_29.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_30.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_31.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_32.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_33.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_34.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_35.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_36.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_37.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_38.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_39.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_40.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_41.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_42.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_43.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_44.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_45.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_46.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_47.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_48.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_49.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_50.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_51.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_52.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_53.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_54.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_55.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_56.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_57.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_58.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_59.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_60.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_61.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_62.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_63.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_64.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_65.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_66.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_67.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_68.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_69.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_70.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_71.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_72.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_73.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_74.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_75.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_76.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_77.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_78.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_79.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_80.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_81.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_82.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_83.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_84.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_85.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_86.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_87.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_88.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_89.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_90.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_91.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_92.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_93.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_94.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_95.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_96.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_97.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_98.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_99.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_100.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_101.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_102.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_103.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_104.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_105.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_106.ts +#EXTINF:6.0, +media_w1204859437_b2962000_vo_slen_t64TWFpbg==_107.ts +# #EXTINF:5.75, +# media_w1204859437_b2962000_vo_slen_t64TWFpbg==_108.ts +#EXT-X-ENDLIST \ No newline at end of file diff --git a/testvectors/hls_subs_no_subs/master.m3u8 b/testvectors/hls_subs_no_subs/master.m3u8 new file mode 100644 index 0000000..76f6648 --- /dev/null +++ b/testvectors/hls_subs_no_subs/master.m3u8 @@ -0,0 +1,5 @@ +#EXTM3U +#EXT-X-VERSION:3 +#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",LANGUAGE="en",NAME="Commentary (eng)",DEFAULT=NO,AUTOSELECT=NO,URI="b160000-english.m3u8" +#EXT-X-STREAM-INF:BANDWIDTH=2962000,NAME="Main",CODECS="avc1.66.30",RESOLUTION=1280x720,AUDIO="aac" +media/b2962000-video.m3u8 diff --git a/testvectors/hls_widevine/index.m3u8 b/testvectors/hls_widevine/index.m3u8 index 1c7eb8d..2868783 100644 --- a/testvectors/hls_widevine/index.m3u8 +++ b/testvectors/hls_widevine/index.m3u8 @@ -3,18 +3,13 @@ #EXT-X-MEDIA:TYPE=AUDIO,URI="playlist_a-eng-0384k-aac-6c.mp4.m3u8",GROUP-ID="default-audio-group",LANGUAGE="en",NAME="stream_6",DEFAULT=YES,AUTOSELECT=YES,CHANNELS="6" -#EXT-X-MEDIA:TYPE=SUBTITLES,URI="playlist_s-en.webvtt.m3u8",GROUP-ID="default-text-group",LANGUAGE="en",NAME="stream_0",DEFAULT=YES,AUTOSELECT=YES -#EXT-X-MEDIA:TYPE=SUBTITLES,URI="playlist_s-el.webvtt.m3u8",GROUP-ID="default-text-group",LANGUAGE="el",NAME="stream_1",AUTOSELECT=YES -#EXT-X-MEDIA:TYPE=SUBTITLES,URI="playlist_s-fr.webvtt.m3u8",GROUP-ID="default-text-group",LANGUAGE="fr",NAME="stream_2",AUTOSELECT=YES -#EXT-X-MEDIA:TYPE=SUBTITLES,URI="playlist_s-pt-BR.webvtt.m3u8",GROUP-ID="default-text-group",LANGUAGE="pt-BR",NAME="stream_3",AUTOSELECT=YES - -#EXT-X-STREAM-INF:BANDWIDTH=831086,AVERAGE-BANDWIDTH=487727,CODECS="avc1.42c01e,mp4a.40.2",RESOLUTION=192x144,AUDIO="default-audio-group",SUBTITLES="default-text-group" +#EXT-X-STREAM-INF:BANDWIDTH=831086,AVERAGE-BANDWIDTH=487727,CODECS="avc1.42c01e,mp4a.40.2",RESOLUTION=192x144,AUDIO="default-audio-group" playlist_v-0144p-0100k-libx264.mp4.m3u8 -#EXT-X-STREAM-INF:BANDWIDTH=8065760,AVERAGE-BANDWIDTH=1830288,CODECS="avc1.4d401f,mp4a.40.2",RESOLUTION=768x576,AUDIO="default-audio-group",SUBTITLES="default-text-group" +#EXT-X-STREAM-INF:BANDWIDTH=8065760,AVERAGE-BANDWIDTH=1830288,CODECS="avc1.4d401f,mp4a.40.2",RESOLUTION=768x576,AUDIO="default-audio-group" playlist_v-0576p-1400k-libx264.mp4.m3u8 -#EXT-X-STREAM-INF:BANDWIDTH=6099164,AVERAGE-BANDWIDTH=1416550,CODECS="avc1.4d401f,mp4a.40.2",RESOLUTION=640x480,AUDIO="default-audio-group",SUBTITLES="default-text-group" +#EXT-X-STREAM-INF:BANDWIDTH=6099164,AVERAGE-BANDWIDTH=1416550,CODECS="avc1.4d401f,mp4a.40.2",RESOLUTION=640x480,AUDIO="default-audio-group" playlist_v-0480p-1000k-libx264.mp4.m3u8 -#EXT-X-STREAM-INF:BANDWIDTH=2193558,AVERAGE-BANDWIDTH=789576,CODECS="avc1.4d401f,mp4a.40.2",RESOLUTION=320x240,AUDIO="default-audio-group",SUBTITLES="default-text-group" +#EXT-X-STREAM-INF:BANDWIDTH=2193558,AVERAGE-BANDWIDTH=789576,CODECS="avc1.4d401f,mp4a.40.2",RESOLUTION=320x240,AUDIO="default-audio-group" playlist_v-0240p-0400k-libx264.mp4.m3u8 -#EXT-X-STREAM-INF:BANDWIDTH=4008262,AVERAGE-BANDWIDTH=1152321,CODECS="avc1.4d401f,mp4a.40.2",RESOLUTION=480x360,AUDIO="default-audio-group",SUBTITLES="default-text-group" +#EXT-X-STREAM-INF:BANDWIDTH=4008262,AVERAGE-BANDWIDTH=1152321,CODECS="avc1.4d401f,mp4a.40.2",RESOLUTION=480x360,AUDIO="default-audio-group" playlist_v-0360p-0750k-libx264.mp4.m3u8