diff --git a/tests/__data__/expected/playlist_format/at.m3u b/tests/__data__/expected/playlist_format/at.m3u new file mode 100644 index 0000000000..171c8c8b13 --- /dev/null +++ b/tests/__data__/expected/playlist_format/at.m3u @@ -0,0 +1,5 @@ +#EXTM3U +#EXTINF:-1 tvg-id="",Hitradio O3 (1080p) +https://studiocam-oe3.mdn.ors.at/orf/studiocam_oe3/q6a/master.m3u8 +#EXTINF:-1 tvg-id="",Hitradio O3 (720p) +https://studiocam-oe3.mdn.ors.at/orf/studiocam_oe3/q6a/manifest.mpd diff --git a/tests/__data__/expected/playlist_format/in.m3u b/tests/__data__/expected/playlist_format/in.m3u index f733f449a4..324b076d47 100644 --- a/tests/__data__/expected/playlist_format/in.m3u +++ b/tests/__data__/expected/playlist_format/in.m3u @@ -1,5 +1,5 @@ #EXTM3U -#EXTINF:-1 tvg-id="",Manorama News -2 [U3] (480p) [Geo-blocked] [Not 24/7] +#EXTINF:-1 tvg-id="",Manorama News -2 (1080p) [U3] (Alt) [Geo-blocked] [Not 24/7] #EXTVLCOPT:http-referrer=http://test.com #EXTVLCOPT:http-user-agent=Mozilla/5.0 https://ythls.onrender.com/channel/UCP0uG-mcMImgKnJz-VjJZmQ.m3u8 diff --git a/tests/__data__/expected/playlist_format/nl.m3u b/tests/__data__/expected/playlist_format/nl.m3u index b9d1f9e4cf..d9aea26043 100644 --- a/tests/__data__/expected/playlist_format/nl.m3u +++ b/tests/__data__/expected/playlist_format/nl.m3u @@ -1,11 +1,11 @@ #EXTM3U #EXTINF:-1 tvg-id="NPO1.nl@SD",NPO 1 (342p) [Geo-blocked] http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo1/npo1.isml/.m3u8 +#EXTINF:-1 tvg-id="NPO2.nl@SD",NPO 2 (1080p) [Geo-blocked] +http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo2/npo22.isml/.m3u8 #EXTINF:-1 tvg-id="NPO2.nl@SD",NPO 2 (342p) http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo2/npo2.isml/.m3u8 #EXTINF:-1 tvg-id="NPO2.nl@SD",NPO 2 (302p) [Geo-blocked] #EXTVLCOPT:http-referrer=http://imn.iq #EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 http://stream.tvtap.net:8081/live/nl-npo2.stream/playlist.m3u8?|Referer="https://referer.xyz/"|User-Agent="Mozilla/5.0+(iPhone;+CPU+iPhone+OS+17_7+like+Mac+OS+X)+AppleWebKit/605.1.15+(KHTML,+like+Gecko)+Version/18.0+Mobile/15E148+Safari/604.1"|Origin="https://origin.xyz" -#EXTINF:-1 tvg-id="NPO2.nl@SD",NPO 2 [Geo-blocked] -http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo2/npo22.isml/.m3u8 diff --git a/tests/__data__/expected/playlist_update/fr.m3u b/tests/__data__/expected/playlist_update/fr.m3u index d09c920ed6..12427bf56b 100644 --- a/tests/__data__/expected/playlist_update/fr.m3u +++ b/tests/__data__/expected/playlist_update/fr.m3u @@ -1,5 +1,5 @@ #EXTM3U -#EXTINF:-1 tvg-id="TFX.fr@SD",TFX (1080p) +#EXTINF:-1 tvg-id="TFX.fr@SD",TFX (720p) #EXTVLCOPT:http-referrer=https://pkpakiplay.xyz/ #EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 17_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1 -https://stitcher-ipv4.pluto.tv/v1/stitch/embed/hls/channel/64c109a4798def0008a6e03e/master.m3u8?advertisingId={PSID}&appVersion=unknown&deviceDNT={TARGETOPT}&deviceId={PSID}&deviceLat=0&deviceLon=0&deviceMake=samsung&deviceModel=samsung&deviceType=samsung-tvplus&deviceVersion=unknown&embedPartner=samsung-tvplus&profileFloor=&profileLimit=&samsung_app_domain={APP_DOMAIN}&samsung_app_name={APP_NAME}&us_privacy=1YNY +https://stitcher-ipv4.pluto.tv/v1/stitch/embed/hls/channel/64c109a4798def0008a6e03e/master.mpd?advertisingId={PSID}&appVersion=unknown&deviceDNT={TARGETOPT}&deviceId={PSID}&deviceLat=0&deviceLon=0&deviceMake=samsung&deviceModel=samsung&deviceType=samsung-tvplus&deviceVersion=unknown&embedPartner=samsung-tvplus&profileFloor=&profileLimit=&samsung_app_domain={APP_DOMAIN}&samsung_app_name={APP_NAME}&us_privacy=1YNY diff --git a/tests/__data__/input/issues.js b/tests/__data__/input/issues.js index 82d14a73fa..206a5571a7 100644 --- a/tests/__data__/input/issues.js +++ b/tests/__data__/input/issues.js @@ -538,7 +538,7 @@ module.exports = [ closed_at: null, author_association: 'COLLABORATOR', active_lock_reason: null, - body: '### Stream ID\n\nTFX.fr\n\n### Stream URL\n\nhttps://stitcher-ipv4.pluto.tv/v1/stitch/embed/hls/channel/64c109a4798def0008a6e03e/master.m3u8?advertisingId={PSID}&appVersion=unknown&deviceDNT={TARGETOPT}&deviceId={PSID}&deviceLat=0&deviceLon=0&deviceMake=samsung&deviceModel=samsung&deviceType=samsung-tvplus&deviceVersion=unknown&embedPartner=samsung-tvplus&profileFloor=&profileLimit=&samsung_app_domain={APP_DOMAIN}&samsung_app_name={APP_NAME}&us_privacy=1YNY\n\n### Label\n\nNone\n\n### HTTP User Agent\n\nMozilla/5.0 (iPhone; CPU iPhone OS 17_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1\n\n### HTTP Referrer\n\nhttps://pkpakiplay.xyz/\n\n### Notes (optional)\n\nSource: https://github.com/iptv-org/iptv-org.github.io/issues/1381\n\n### Contributing Guide\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', + body: '### Stream ID\n\nTFX.fr\n\n### Stream URL\n\nhttps://stitcher-ipv4.pluto.tv/v1/stitch/embed/hls/channel/64c109a4798def0008a6e03e/master.mpd?advertisingId={PSID}&appVersion=unknown&deviceDNT={TARGETOPT}&deviceId={PSID}&deviceLat=0&deviceLon=0&deviceMake=samsung&deviceModel=samsung&deviceType=samsung-tvplus&deviceVersion=unknown&embedPartner=samsung-tvplus&profileFloor=&profileLimit=&samsung_app_domain={APP_DOMAIN}&samsung_app_name={APP_NAME}&us_privacy=1YNY\n\n### Label\n\nNone\n\n### HTTP User Agent\n\nMozilla/5.0 (iPhone; CPU iPhone OS 17_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1\n\n### HTTP Referrer\n\nhttps://pkpakiplay.xyz/\n\n### Notes (optional)\n\nSource: https://github.com/iptv-org/iptv-org.github.io/issues/1381\n\n### Contributing Guide\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)', reactions: { url: 'https://api.github.com/repos/iptv-org/iptv/issues/14175/reactions', total_count: 0, diff --git a/tests/__data__/input/playlist_format/at.m3u b/tests/__data__/input/playlist_format/at.m3u new file mode 100644 index 0000000000..9436c2c875 --- /dev/null +++ b/tests/__data__/input/playlist_format/at.m3u @@ -0,0 +1,5 @@ +#EXTM3U +#EXTINF:-1 tvg-id="HitradioO3.at@SD",Hitradio O3 +https://studiocam-oe3.mdn.ors.at/orf/studiocam_oe3/q6a/manifest.mpd +#EXTINF:-1 tvg-id="HitradioO3.at@SD",Hitradio O3 +https://studiocam-oe3.mdn.ors.at/orf/studiocam_oe3/q6a/master.m3u8 \ No newline at end of file diff --git a/tests/__data__/input/playlist_format/in.m3u b/tests/__data__/input/playlist_format/in.m3u index 0a013ba7a1..fda7a41b14 100644 --- a/tests/__data__/input/playlist_format/in.m3u +++ b/tests/__data__/input/playlist_format/in.m3u @@ -1,3 +1,3 @@ #EXTM3U -#EXTINF:-1 tvg-id="mn.in" http-referrer="http://test.com" http-user-agent="Mozilla/5.0",Manorama News -2 [U3] (480p) [Geo-blocked] [Not 24/7] +#EXTINF:-1 tvg-id="mn.in" http-referrer="http://test.com" http-user-agent="Mozilla/5.0",Manorama News -2 [U3] (Alt) [Geo-blocked] [Not 24/7] https://ythls.onrender.com/channel/UCP0uG-mcMImgKnJz-VjJZmQ.m3u8 diff --git a/tests/__data__/input/playlist_update/manifest.mpd b/tests/__data__/input/playlist_update/manifest.mpd new file mode 100644 index 0000000000..80aded62a5 --- /dev/null +++ b/tests/__data__/input/playlist_update/manifest.mpd @@ -0,0 +1,45 @@ + + + + + dash/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/__data__/input/playlist_update/playlist.m3u8 b/tests/__data__/input/playlist_update/playlist.m3u8 new file mode 100644 index 0000000000..28ff1f079d --- /dev/null +++ b/tests/__data__/input/playlist_update/playlist.m3u8 @@ -0,0 +1,12 @@ +#EXTM3U +## Generated with https://github.com/shaka-project/shaka-packager version v3.4.2-c819dea-release +#EXT-X-INDEPENDENT-SEGMENTS +#EXT-X-MEDIA:TYPE=AUDIO,URI="stream_4.m3u8",GROUP-ID="default-audio-group",LANGUAGE="pl",NAME="stream_4",DEFAULT=NO,AUTOSELECT=YES,CHANNELS="2" +#EXT-X-STREAM-INF:BANDWIDTH=3688787,AVERAGE-BANDWIDTH=8948756,CODECS="avc1.424028,mp4a.40.2",RESOLUTION=1920x1080,FRAME-RATE=25.000,AUDIO="default-audio-group",CLOSED-CAPTIONS=NONE +stream_0.m3u8 +#EXT-X-STREAM-INF:BANDWIDTH=1988787,AVERAGE-BANDWIDTH=3688345,CODECS="avc1.42401f,mp4a.40.2",RESOLUTION=1280x720,FRAME-RATE=25.000,AUDIO="default-audio-group",CLOSED-CAPTIONS=NONE +stream_1.m3u8 +#EXT-X-STREAM-INF:BANDWIDTH=1188787,AVERAGE-BANDWIDTH=1774276,CODECS="avc1.42401e,mp4a.40.2",RESOLUTION=853x480,FRAME-RATE=25.000,AUDIO="default-audio-group",CLOSED-CAPTIONS=NONE +stream_2.m3u8 +#EXT-X-STREAM-INF:BANDWIDTH=688787,AVERAGE-BANDWIDTH=766090,CODECS="avc1.42401e,mp4a.40.2",RESOLUTION=640x360,FRAME-RATE=25.000,AUDIO="default-audio-group",CLOSED-CAPTIONS=NONE +stream_3.m3u8 diff --git a/tests/__data__/input/playlist_update/playlist.mjs b/tests/__data__/input/playlist_update/playlist.mjs deleted file mode 100644 index 2f1d74c465..0000000000 --- a/tests/__data__/input/playlist_update/playlist.mjs +++ /dev/null @@ -1,111 +0,0 @@ -export default { - type: 'playlist', - isMasterPlaylist: true, - independentSegments: true, - source: - '#EXTM3U\n## Generated with https://github.com/shaka-project/shaka-packager version v3.4.2-c819dea-release\n\n#EXT-X-INDEPENDENT-SEGMENTS\n\n#EXT-X-MEDIA:TYPE=AUDIO,URI="stream_4.m3u8",GROUP-ID="default-audio-group",LANGUAGE="pl",NAME="stream_4",DEFAULT=NO,AUTOSELECT=YES,CHANNELS="2"\n\n#EXT-X-STREAM-INF:BANDWIDTH=3688787,AVERAGE-BANDWIDTH=8948756,CODECS="avc1.424028,mp4a.40.2",RESOLUTION=1920x1080,FRAME-RATE=25.000,AUDIO="default-audio-group",CLOSED-CAPTIONS=NONE\nstream_0.m3u8\n#EXT-X-STREAM-INF:BANDWIDTH=1988787,AVERAGE-BANDWIDTH=3688345,CODECS="avc1.42401f,mp4a.40.2",RESOLUTION=1280x720,FRAME-RATE=25.000,AUDIO="default-audio-group",CLOSED-CAPTIONS=NONE\nstream_1.m3u8\n#EXT-X-STREAM-INF:BANDWIDTH=1188787,AVERAGE-BANDWIDTH=1774276,CODECS="avc1.42401e,mp4a.40.2",RESOLUTION=853x480,FRAME-RATE=25.000,AUDIO="default-audio-group",CLOSED-CAPTIONS=NONE\nstream_2.m3u8\n#EXT-X-STREAM-INF:BANDWIDTH=688787,AVERAGE-BANDWIDTH=766090,CODECS="avc1.42401e,mp4a.40.2",RESOLUTION=640x360,FRAME-RATE=25.000,AUDIO="default-audio-group",CLOSED-CAPTIONS=NONE\nstream_3.m3u8\n', - variants: [ - { - uri: 'stream_0.m3u8', - isIFrameOnly: false, - bandwidth: 3688787, - averageBandwidth: 8948756, - codecs: 'avc1.424028,mp4a.40.2', - resolution: { width: 1920, height: 1080 }, - frameRate: 25, - audio: [ - { - type: 'AUDIO', - uri: 'stream_4.m3u8', - groupId: 'default-audio-group', - language: 'pl', - name: 'stream_4', - isDefault: false, - autoselect: true, - channels: '2' - } - ], - video: [], - subtitles: [], - closedCaptions: [], - currentRenditions: { audio: 0, video: 0, subtitles: 0, closedCaptions: 0 } - }, - { - uri: 'stream_1.m3u8', - isIFrameOnly: false, - bandwidth: 1988787, - averageBandwidth: 3688345, - codecs: 'avc1.42401f,mp4a.40.2', - resolution: { width: 1280, height: 720 }, - frameRate: 25, - audio: [ - { - type: 'AUDIO', - uri: 'stream_4.m3u8', - groupId: 'default-audio-group', - language: 'pl', - name: 'stream_4', - isDefault: false, - autoselect: true, - channels: '2' - } - ], - video: [], - subtitles: [], - closedCaptions: [], - currentRenditions: { audio: 0, video: 0, subtitles: 0, closedCaptions: 0 } - }, - { - uri: 'stream_2.m3u8', - isIFrameOnly: false, - bandwidth: 1188787, - averageBandwidth: 1774276, - codecs: 'avc1.42401e,mp4a.40.2', - resolution: { width: 853, height: 480 }, - frameRate: 25, - audio: [ - { - type: 'AUDIO', - uri: 'stream_4.m3u8', - groupId: 'default-audio-group', - language: 'pl', - name: 'stream_4', - isDefault: false, - autoselect: true, - channels: '2' - } - ], - video: [], - subtitles: [], - closedCaptions: [], - currentRenditions: { audio: 0, video: 0, subtitles: 0, closedCaptions: 0 } - }, - { - uri: 'stream_3.m3u8', - isIFrameOnly: false, - bandwidth: 688787, - averageBandwidth: 766090, - codecs: 'avc1.42401e,mp4a.40.2', - resolution: { width: 640, height: 360 }, - frameRate: 25, - audio: [ - { - type: 'AUDIO', - uri: 'stream_4.m3u8', - groupId: 'default-audio-group', - language: 'pl', - name: 'stream_4', - isDefault: false, - autoselect: true, - channels: '2' - } - ], - video: [], - subtitles: [], - closedCaptions: [], - currentRenditions: { audio: 0, video: 0, subtitles: 0, closedCaptions: 0 } - } - ], - sessionDataList: [], - sessionKeyList: [] -}