commit
f6fc40b3ce
|
@ -17,8 +17,6 @@ http://c2.manasat.com:1935/kmusic/kmusic3/FluxusTV.m3u8
|
|||
http://195.22.11.11:1935/ktv/ktv1/FluxusTV.m3u8
|
||||
#EXTINF:-1 tvg-id="" tvg-name="" tvg-language="Portuguese" tvg-logo="https://i.imgur.com/M5i4hfh.png" group-title="",Kuriakos TV
|
||||
http://195.22.11.11:1935/ktv/ktv1/TeamBlue.m3u8
|
||||
#EXTINF:-1 tvg-id="RTP 1 PT" tvg-name="RTP 1 PT" tvg-language="Portuguese" tvg-logo="https://i.imgur.com/Rdt24TC.png" group-title="",RTP 1
|
||||
http://210.210.155.35/qwr9ew/s/s38/index.m3u8
|
||||
#EXTINF:-1 tvg-id="" tvg-name="" tvg-language="Portuguese" tvg-logo="https://i.imgur.com/jYIf7Mz.png" group-title="",Sobrenatural TV
|
||||
http://213.13.26.11:1935/live/sobrenaturaltv/livestream.m3u8
|
||||
#EXTINF:-1 tvg-id="" tvg-name="" tvg-language="Portuguese" tvg-logo="https://i.imgur.com/VgzVZto.png" group-title="",Sobrenatural TV
|
||||
|
@ -31,3 +29,33 @@ https://streamer-b02.videos.sapo.pt/live/santuario.stream/chunklist.m3u8
|
|||
http://streamspub.manasat.com:1935/tvar/tvmanaar2/playlist.m3u8
|
||||
#EXTINF:-1 tvg-id="TVI Reality PT" tvg-name="TVI Reality PT" tvg-language="Portuguese" tvg-logo="https://i.imgur.com/yM3G8nv.jpg" group-title="",TVI Reality
|
||||
http://video-auth8.iol.pt:80/live_tvi_direct/live_tvi_direct-3/playlist.m3u8
|
||||
#EXTINF:-1 tvg-id="ARTV PT" tvg-name="ARTV PT" tvg-language="Portuguese" tvg-logo="http://www.canal.parlamento.pt/images/ARTV_Logo.png" tvg-country="PT" group-title="Legislative",ARTV | Canal Parlamento
|
||||
https://5e4fc274d9d46.streamlock.net/livenlin4/2liveartvpub/playlist.m3u8
|
||||
#EXTINF:-1 tvg-id="RTP 1 PT" tvg-name="RTP 1 PT" tvg-language="Portuguese" tvg-logo="https://cdn-images.rtp.pt/common/img/channels/logos/color/horizontal/5-563718101410.png" tvg-country="PT" group-title="General",RTP1 [not 24/7]
|
||||
#EXTVLCOPT:http-user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
|
||||
https://streaming-live.rtp.pt/liverepeater/smil:rtp1.smil/playlist.m3u8
|
||||
#EXTINF:-1 tvg-id="RTP 2 PT" tvg-name="RTP 2 PT" tvg-language="Portuguese" tvg-logo="https://cdn-images.rtp.pt/common/img/channels/logos/color/horizontal/3-363718101410.png" tvg-country="PT" group-title="General",RTP2 [not 24/7]
|
||||
#EXTVLCOPT:http-user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
|
||||
https://streaming-live.rtp.pt/liverepeater/smil:rtp2.smil/playlist.m3u8
|
||||
#EXTINF:-1 tvg-id="RTP 3 PT" tvg-name="RTP 3 PT" tvg-language="Portuguese" tvg-logo="https://cdn-images.rtp.pt/common/img/channels/logos/color/horizontal/64-393818101410.png" tvg-country="PT" group-title="News",RTP3 [not 24/7]
|
||||
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64)
|
||||
https://streaming-live.rtp.pt/livetvhlsDVR/rtpndvr.smil/playlist.m3u8
|
||||
#EXTINF:-1 tvg-id="RTP Internacional PT" tvg-name="RTP Internacional PT" tvg-language="Portuguese" tvg-logo="https://cdn-images.rtp.pt/common/img/channels/logos/color/horizontal/120-344318101410.png" tvg-country="PT" group-title="General",RTP Internacional [not 24/7]
|
||||
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64)
|
||||
https://streaming-live.rtp.pt/liverepeater/smil:rtpi.smil/playlist.m3u8
|
||||
#EXTINF:-1 tvg-id="RTP Internacional PT" tvg-name="RTP Internacional PT" tvg-language="Portuguese" tvg-logo="https://cdn-images.rtp.pt/common/img/channels/logos/color/horizontal/120-344318101410.png" tvg-country="PT" group-title="General",RTP Internacional (Backup)
|
||||
http://210.210.155.35/qwr9ew/s/s38/index.m3u8
|
||||
#EXTINF:-1 tvg-id="RTP Memoria PT" tvg-name="RTP Memoria PT" tvg-language="Portuguese" tvg-logo="https://cdn-images.rtp.pt/common/img/channels/logos/color/horizontal/80-584819141705.png" tvg-country="PT" group-title="",RTP Memória [not 24/7]
|
||||
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64)
|
||||
https://streaming-live.rtp.pt/liverepeater/smil:rtpmem.smil/playlist.m3u8
|
||||
#EXTINF:-1 tvg-id="RTP Madeira PT" tvg-name="RTP Madeira" tvg-language="Portuguese" tvg-logo="https://cdn-images.rtp.pt/common/img/channels/logos/color/horizontal/107-443519141305.png" tvg-country="PT" group-title="General",RTP Madeira [not 24/7]
|
||||
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64)
|
||||
https://streaming-live.rtp.pt/liverepeater/smil:rtpmadeira.smil/playlist.m3u8
|
||||
#EXTINF:-1 tvg-id="RTP Acores PT" tvg-name="RTP Acores PT" tvg-language="Portuguese" tvg-logo="https://cdn-images.rtp.pt/common/img/channels/logos/color/horizontal/106-563419141305.png" tvg-country="PT" group-title="General",RTP Açores [not 24/7]
|
||||
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64)
|
||||
https://streaming-live.rtp.pt/liverepeater/smil:rtpacores.smil/playlist.m3u8
|
||||
#EXTINF:-1 tvg-id="RTP Africa PT" tvg-name="RTP Africa PT" tvg-language="Portuguese" tvg-logo="https://cdn-images.rtp.pt/common/img/channels/logos/color/horizontal/27-363219141305.png" tvg-country="PT" group-title="General",RTP África [not 24/7]
|
||||
#EXTVLCOPT:http-user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64)
|
||||
https://streaming-live.rtp.pt/liverepeater/smil:rtpafrica.smil/playlist.m3u8
|
||||
#EXTINF:-1 tvg-id="Porto Canal PT" tvg-name="Porto Canal PT" tvg-language="Portuguese" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/b/ba/Logo_Porto_Canal.jpg" tvg-country="PT" group-title="",Porto Canal
|
||||
https://streamer-b02.videos.sapo.pt/live/portocanal/playlist.m3u8
|
||||
|
|
|
@ -3,16 +3,6 @@
|
|||
"requires": true,
|
||||
"lockfileVersion": 1,
|
||||
"dependencies": {
|
||||
"@babel/runtime-corejs2": {
|
||||
"version": "7.6.3",
|
||||
"resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.6.3.tgz",
|
||||
"integrity": "sha512-nuA2o+rgX2+PrNTZ063ehncVcg7sn+tU71BB81SaWRVUbGwCOlb0+yQA1e0QqmzOfRSYOxfvf8cosYqFbJEiwQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"core-js": "^2.6.5",
|
||||
"regenerator-runtime": "^0.13.2"
|
||||
}
|
||||
},
|
||||
"async": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-3.1.0.tgz",
|
||||
|
@ -29,12 +19,6 @@
|
|||
"is-buffer": "^2.0.2"
|
||||
}
|
||||
},
|
||||
"core-js": {
|
||||
"version": "2.6.10",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.10.tgz",
|
||||
"integrity": "sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA==",
|
||||
"dev": true
|
||||
},
|
||||
"debug": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
|
||||
|
@ -44,15 +28,6 @@
|
|||
"ms": "2.0.0"
|
||||
}
|
||||
},
|
||||
"decamelize": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-3.2.0.tgz",
|
||||
"integrity": "sha512-4TgkVUsmmu7oCSyGBm5FvfMoACuoh9EOidm7V5/J2X2djAwwt57qb3F2KMP2ITqODTCSwb+YRV+0Zqrv18k/hw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"xregexp": "^4.2.4"
|
||||
}
|
||||
},
|
||||
"epg-parser": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/epg-parser/-/epg-parser-0.1.1.tgz",
|
||||
|
@ -88,14 +63,10 @@
|
|||
}
|
||||
},
|
||||
"iptv-playlist-parser": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/iptv-playlist-parser/-/iptv-playlist-parser-0.3.0.tgz",
|
||||
"integrity": "sha512-FA9B+8Lh+0KtWWXDaxzFf1DY3QJI+mGCZP/E51XoJcfahnajyyqdfI1ClpQquFHok2CLNqnfbeW6rzJN9TCREg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"decamelize": "^3.2.0",
|
||||
"m3u8-file-parser": "^0.2.2"
|
||||
}
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/iptv-playlist-parser/-/iptv-playlist-parser-0.4.0.tgz",
|
||||
"integrity": "sha512-zgNM3chjwgd3bBQsujhdbospyYHky/zURdRSx5uVSkWK5Md6YssrIrVp98WMjJVx5dTlP81C8bdbPGYEyEIfOA==",
|
||||
"dev": true
|
||||
},
|
||||
"is-buffer": {
|
||||
"version": "2.0.3",
|
||||
|
@ -115,12 +86,6 @@
|
|||
"integrity": "sha1-AMMs5IFSpJphRFC5uiYyq1igo2Q=",
|
||||
"dev": true
|
||||
},
|
||||
"m3u8-file-parser": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://registry.npmjs.org/m3u8-file-parser/-/m3u8-file-parser-0.2.2.tgz",
|
||||
"integrity": "sha512-OW2m2wcVh4g55MKpe5jxp4AOkpUVQEuaXEF8YTnIP1eAPmLtmuzfk+QcHqA+raqK3zdkz/nHjNvoCKn0k6UgzA==",
|
||||
"dev": true
|
||||
},
|
||||
"markdown-include": {
|
||||
"version": "0.4.3",
|
||||
"resolved": "https://registry.npmjs.org/markdown-include/-/markdown-include-0.4.3.tgz",
|
||||
|
@ -142,12 +107,6 @@
|
|||
"integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
|
||||
"dev": true
|
||||
},
|
||||
"regenerator-runtime": {
|
||||
"version": "0.13.3",
|
||||
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
|
||||
"integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==",
|
||||
"dev": true
|
||||
},
|
||||
"sax": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
|
||||
|
@ -171,15 +130,6 @@
|
|||
"requires": {
|
||||
"sax": "^1.2.4"
|
||||
}
|
||||
},
|
||||
"xregexp": {
|
||||
"version": "4.2.4",
|
||||
"resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.2.4.tgz",
|
||||
"integrity": "sha512-sO0bYdYeJAJBcJA8g7MJJX7UrOZIfJPd8U2SC7B2Dd/J24U0aQNoGp33shCaBSWeb0rD5rh6VBUIXOkGal1TZA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/runtime-corejs2": "^7.2.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
"epg-parser": "^0.1.1",
|
||||
"escape-string-regexp": "^2.0.0",
|
||||
"fluent-ffmpeg": "^2.1.2",
|
||||
"iptv-playlist-parser": "^0.3.0",
|
||||
"iptv-playlist-parser": "^0.4.0",
|
||||
"langs": "^2.0.0",
|
||||
"markdown-include": "^0.4.3"
|
||||
}
|
||||
|
|
|
@ -175,15 +175,7 @@ helper.generateTable = function (data, options) {
|
|||
}
|
||||
|
||||
helper.createChannel = function (data) {
|
||||
return new Channel({
|
||||
id: data.tvg.id,
|
||||
name: data.tvg.name,
|
||||
language: data.tvg.language,
|
||||
logo: data.tvg.logo,
|
||||
group: data.group.title,
|
||||
url: data.url,
|
||||
title: data.name
|
||||
})
|
||||
return new Channel(data)
|
||||
}
|
||||
|
||||
helper.writeToLog = function (country, msg, url) {
|
||||
|
@ -230,13 +222,15 @@ class Playlist {
|
|||
|
||||
class Channel {
|
||||
constructor(data) {
|
||||
this.id = data.id
|
||||
this.name = data.name
|
||||
this.language = this._filterLanguage(data.language)
|
||||
this.logo = data.logo
|
||||
this.group = this._filterGroup(data.group)
|
||||
this.id = data.tvg.id
|
||||
this.name = data.tvg.name
|
||||
this.language = this._filterLanguage(data.tvg.language)
|
||||
this.logo = data.tvg.logo
|
||||
this.group = this._filterGroup(data.group.title)
|
||||
this.url = data.url
|
||||
this.title = data.title
|
||||
this.title = data.name.trim()
|
||||
this.userAgent = data.http['user-agent']
|
||||
this.referrer = data.http['referrer']
|
||||
}
|
||||
|
||||
_filterGroup(groupTitle) {
|
||||
|
@ -297,13 +291,30 @@ class Channel {
|
|||
toString() {
|
||||
const country = this.countryCode.toUpperCase()
|
||||
const epg = this.id && this.epg ? this.epg : ''
|
||||
const info = `-1 tvg-id="${this.id}" tvg-name="${this.name}" tvg-language="${this.language}" tvg-logo="${this.logo}" tvg-country="${country}" tvg-url="${epg}" group-title="${this.group}",${this.title}`
|
||||
|
||||
let info = `-1 tvg-id="${this.id}" tvg-name="${this.name}" tvg-language="${this.language}" tvg-logo="${this.logo}" tvg-country="${country}" tvg-url="${epg}" group-title="${this.group}",${this.title}`
|
||||
|
||||
if (this.referrer) {
|
||||
info += `\n#EXTVLCOPT:http-referrer=${this.referrer}`
|
||||
}
|
||||
|
||||
if (this.userAgent) {
|
||||
info += `\n#EXTVLCOPT:http-user-agent=${this.userAgent}`
|
||||
}
|
||||
|
||||
return '#EXTINF:' + info + '\n' + this.url + '\n'
|
||||
}
|
||||
|
||||
toShortString() {
|
||||
const info = `-1 tvg-id="${this.id}" tvg-name="${this.name}" tvg-language="${this.language}" tvg-logo="${this.logo}" group-title="${this.group}",${this.title}`
|
||||
let info = `-1 tvg-id="${this.id}" tvg-name="${this.name}" tvg-language="${this.language}" tvg-logo="${this.logo}" group-title="${this.group}",${this.title}`
|
||||
|
||||
if (this.referrer) {
|
||||
info += `\n#EXTVLCOPT:http-referrer=${this.referrer}`
|
||||
}
|
||||
|
||||
if (this.userAgent) {
|
||||
info += `\n#EXTVLCOPT:http-user-agent=${this.userAgent}`
|
||||
}
|
||||
|
||||
return '#EXTINF:' + info + '\n' + this.url + '\n'
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue