Merge branch 'fix-scripts'
This commit is contained in:
commit
8a769b616f
|
@ -49,13 +49,15 @@ async function updateStreams(items = [], results = {}, origins = {}) {
|
||||||
if (buffer[stream.get('url')]) {
|
if (buffer[stream.get('url')]) {
|
||||||
await db.streams.remove({ _id: stream.get('_id') })
|
await db.streams.remove({ _id: stream.get('_id') })
|
||||||
removed++
|
removed++
|
||||||
} else if (stream.changed) {
|
} else {
|
||||||
|
buffer[stream.get('url')] = true
|
||||||
|
if (stream.changed) {
|
||||||
stream.set('updated_at', { updated_at: now })
|
stream.set('updated_at', { updated_at: now })
|
||||||
await db.streams.update({ _id: stream.get('_id') }, stream.data())
|
await db.streams.update({ _id: stream.get('_id') }, stream.data())
|
||||||
buffer[stream.get('url')] = true
|
|
||||||
updated++
|
updated++
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
db.streams.compact()
|
db.streams.compact()
|
||||||
|
|
||||||
|
|
|
@ -4,25 +4,57 @@
|
||||||
|
|
||||||
Collection of publicly available IPTV (Internet Protocol television) channels from all over the world.
|
Collection of publicly available IPTV (Internet Protocol television) channels from all over the world.
|
||||||
|
|
||||||
## Usage
|
## Table of contents
|
||||||
|
|
||||||
|
- 🚀 [How to use?](#how-to-use)
|
||||||
|
- 📺 [Playlists](#playlists)
|
||||||
|
- 🗓 [EPG](#epg)
|
||||||
|
- 🗄 [Database](#database)
|
||||||
|
- 👨💻 [API](#api)
|
||||||
|
- 📚 [Resources](#resources)
|
||||||
|
- 💬 [Discussions](#discussions)
|
||||||
|
- 🛠 [Contribution](#contribution)
|
||||||
|
- ⚖ [Legal](#legal)
|
||||||
|
- © [License](#license)
|
||||||
|
|
||||||
|
## How to use?
|
||||||
|
|
||||||
|
Simply insert one of the links below into [any video player](https://github.com/iptv-org/awesome-iptv#apps) that supports live streaming and press _Open_.
|
||||||
|
|
||||||
![VLC Network Panel](https://github.com/iptv-org/iptv/raw/master/.readme/preview.png)
|
![VLC Network Panel](https://github.com/iptv-org/iptv/raw/master/.readme/preview.png)
|
||||||
|
|
||||||
To watch IPTV, simply insert one of the links below into any player that supports M3U playlists:
|
## Playlists
|
||||||
|
|
||||||
- `https://iptv-org.github.io/iptv/index.m3u`
|
There are several versions of playlists that differ in the way they are grouped.
|
||||||
- `https://iptv-org.github.io/iptv/index.nsfw.m3u` (includes adult channels)
|
|
||||||
- `https://iptv-org.github.io/iptv/index.category.m3u` (grouped by category)
|
|
||||||
- `https://iptv-org.github.io/iptv/index.country.m3u` (grouped by country)
|
|
||||||
- `https://iptv-org.github.io/iptv/index.language.m3u` (grouped by language)
|
|
||||||
- `https://iptv-org.github.io/iptv/index.region.m3u` (grouped by region)
|
|
||||||
|
|
||||||
### Playlists by category
|
### Main playlist
|
||||||
|
|
||||||
|
Playlist includes all known channels except adult channels.
|
||||||
|
|
||||||
|
```
|
||||||
|
https://iptv-org.github.io/iptv/index.m3u
|
||||||
|
```
|
||||||
|
|
||||||
|
And here is the full version:
|
||||||
|
|
||||||
|
```
|
||||||
|
https://iptv-org.github.io/iptv/index.nsfw.m3u
|
||||||
|
```
|
||||||
|
|
||||||
|
### Grouped by category
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Expand</summary>
|
<summary>Expand</summary>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
Playlist in which each channel has its _category_ as a group title:
|
||||||
|
|
||||||
|
```
|
||||||
|
https://iptv-org.github.io/iptv/index.category.m3u
|
||||||
|
```
|
||||||
|
|
||||||
|
Same thing, but split up into separate files:
|
||||||
|
|
||||||
<!-- prettier-ignore -->
|
<!-- prettier-ignore -->
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
|
@ -63,12 +95,20 @@ To watch IPTV, simply insert one of the links below into any player that support
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
### Playlists by language
|
### Grouped by language
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Expand</summary>
|
<summary>Expand</summary>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
Playlist in which each channel has its _language_ as a group title:
|
||||||
|
|
||||||
|
```
|
||||||
|
https://iptv-org.github.io/iptv/index.language.m3u
|
||||||
|
```
|
||||||
|
|
||||||
|
Same thing, but split up into separate files:
|
||||||
|
|
||||||
<!-- prettier-ignore -->
|
<!-- prettier-ignore -->
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
|
@ -85,12 +125,20 @@ To watch IPTV, simply insert one of the links below into any player that support
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
### Playlists by country
|
### Grouped by country
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Expand</summary>
|
<summary>Expand</summary>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
Playlist in which each channel has its _country_ as a group title:
|
||||||
|
|
||||||
|
```
|
||||||
|
https://iptv-org.github.io/iptv/index.country.m3u
|
||||||
|
```
|
||||||
|
|
||||||
|
Same thing, but split up into separate files:
|
||||||
|
|
||||||
<!-- prettier-ignore -->
|
<!-- prettier-ignore -->
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
|
@ -353,12 +401,20 @@ To watch IPTV, simply insert one of the links below into any player that support
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
### Playlists by region
|
### Grouped by region
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Expand</summary>
|
<summary>Expand</summary>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
Playlist in which each channel has its _region_ as a group title:
|
||||||
|
|
||||||
|
```
|
||||||
|
https://iptv-org.github.io/iptv/index.region.m3u
|
||||||
|
```
|
||||||
|
|
||||||
|
Same thing, but split up into separate files:
|
||||||
|
|
||||||
<!-- prettier-ignore -->
|
<!-- prettier-ignore -->
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
|
@ -411,10 +467,24 @@ The API documentation can be found in the [iptv-org/api](https://github.com/iptv
|
||||||
|
|
||||||
Links to other useful IPTV-related resources can be found in the [iptv-org/awesome-iptv](https://github.com/iptv-org/awesome-iptv) repository.
|
Links to other useful IPTV-related resources can be found in the [iptv-org/awesome-iptv](https://github.com/iptv-org/awesome-iptv) repository.
|
||||||
|
|
||||||
|
## Discussions
|
||||||
|
|
||||||
|
If you have a question or an idea, you can post it in the [Discussions](https://github.com/iptv-org/iptv/discussions) tab.
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
|
|
||||||
Please make sure to read the [Contributing Guide](CONTRIBUTING.md) before sending an issue or making a pull request.
|
Please make sure to read the [Contributing Guide](CONTRIBUTING.md) before sending an issue or making a pull request.
|
||||||
|
|
||||||
|
And thank you to everyone who has already contributed!
|
||||||
|
|
||||||
|
### Backers
|
||||||
|
|
||||||
|
<a href="https://opencollective.com/iptv-org"><img src="https://opencollective.com/iptv-org/backers.svg?width=890" /></a>
|
||||||
|
|
||||||
|
### Contributors
|
||||||
|
|
||||||
|
<a href="https://github.com/iptv-org/iptv/graphs/contributors"><img src="https://opencollective.com/iptv-org/contributors.svg?width=890" /></a>
|
||||||
|
|
||||||
## Legal
|
## Legal
|
||||||
|
|
||||||
No video files are stored in this repository. The repository simply contains user-submitted links to publicly available video stream URLs, which to the best of our knowledge have been intentionally made publicly by the copyright holders. If any links in these playlists infringe on your rights as a copyright holder, they may be removed by sending a [pull request](https://github.com/iptv-org/iptv/pulls) or opening an [issue](https://github.com/iptv-org/iptv/issues/new?assignees=freearhey&labels=removal+request&template=--removal-request.yml&title=Remove%3A+). However, note that we have **no control** over the destination of the link, and just removing the link from the playlist will not remove its contents from the web. Note that linking does not directly infringe copyright because no copy is made on the site providing the link, and thus this is **not** a valid reason to send a DMCA notice to GitHub. To remove this content from the web, you should contact the web host that's actually hosting the content (**not** GitHub, nor the maintainers of this repository).
|
No video files are stored in this repository. The repository simply contains user-submitted links to publicly available video stream URLs, which to the best of our knowledge have been intentionally made publicly by the copyright holders. If any links in these playlists infringe on your rights as a copyright holder, they may be removed by sending a [pull request](https://github.com/iptv-org/iptv/pulls) or opening an [issue](https://github.com/iptv-org/iptv/issues/new?assignees=freearhey&labels=removal+request&template=--removal-request.yml&title=Remove%3A+). However, note that we have **no control** over the destination of the link, and just removing the link from the playlist will not remove its contents from the web. Note that linking does not directly infringe copyright because no copy is made on the site providing the link, and thus this is **not** a valid reason to send a DMCA notice to GitHub. To remove this content from the web, you should contact the web host that's actually hosting the content (**not** GitHub, nor the maintainers of this repository).
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
{"title":"ЛДПР ТВ","channel":"LDPRTV.ru","filepath":"tests/__data__/output/streams/ru.m3u","url":"http://46.46.143.222:1935/live/mp4:ldpr.stream/playlist.m3u8","http_referrer":null,"user_agent":null,"cluster_id":1,"_id":"2ST8btby3mmsgPF0","status":"error"}
|
|
||||||
{"title":"BBC News HD","channel":"BBCNews.uk","filepath":"tests/__data__/output/streams/uk.m3u","url":"http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8","http_referrer":null,"user_agent":null,"cluster_id":3,"_id":"3TbieV1ptnZVCIdn","status":"blocked"}
|
{"title":"BBC News HD","channel":"BBCNews.uk","filepath":"tests/__data__/output/streams/uk.m3u","url":"http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8","http_referrer":null,"user_agent":null,"cluster_id":3,"_id":"3TbieV1ptnZVCIdn","status":"blocked"}
|
||||||
{"title":"BBC News HD","channel":"BBCNewsHD.uk","filepath":"tests/__data__/output/streams/uk.m3u","url":"https://master.starmena-cloud.com/hls/bbc.m3u8","http_referrer":null,"user_agent":null,"cluster_id":3,"_id":"WTbieV1ptnXVCIdn","status":"online","bitrate":0,"frame_rate":25,"width":1024,"height":576}
|
{"title":"BBC News HD","channel":"BBCNewsHD.uk","filepath":"tests/__data__/output/streams/uk.m3u","url":"https://master.starmena-cloud.com/hls/bbc.m3u8","http_referrer":null,"user_agent":null,"cluster_id":3,"_id":"WTbieV1ptnXVCIdn","status":"online","bitrate":0,"frame_rate":25,"width":1024,"height":576}
|
||||||
{"title":"Libyas Channel","channel":"LibyasChannel.ly","filepath":"tests/__data__/output/streams/ly.m3u","url":"https://master.starmena-cloud.com/hls/libyas.m3u8","http_referrer":null,"user_agent":null,"cluster_id":3,"_id":"WTbieV1ptnZVCIdn","status":"online","bitrate":0,"frame_rate":25,"width":1024,"height":576}
|
{"title":"Libyas Channel","channel":"LibyasChannel.ly","filepath":"tests/__data__/output/streams/ly.m3u","url":"https://master.starmena-cloud.com/hls/libyas.m3u8","http_referrer":null,"user_agent":null,"cluster_id":3,"_id":"WTbieV1ptnZVCIdn","status":"online","bitrate":0,"frame_rate":25,"width":1024,"height":576}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
{"title":"BBC News HD","channel":"BBCNews.uk","filepath":"tests/__data__/output/streams/uk.m3u","url":"http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8","http_referrer":null,"user_agent":null,"cluster_id":3,"_id":"3TbieV1ptnZVCIdn","status":"blocked"}
|
{"title":"BBC News HD","channel":"BBCNews.uk","filepath":"tests/__data__/output/streams/uk.m3u","url":"http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8","http_referrer":null,"user_agent":null,"cluster_id":3,"_id":"3TbieV1ptnZVCIdn","status":"blocked"}
|
||||||
{"title":"ATV","channel":"AndorraTV.ad","filepath":"tests/__data__/output/streams/ad.m3u","url":"https://iptv-all.lanesh4d0w.repl.co/andorra/atv","http_referrer":null,"user_agent":null,"cluster_id":1,"_id":"I6cjG2xCBRFFP4sz","status":"error"}
|
{"title":"ATV","channel":"AndorraTV.ad","filepath":"tests/__data__/output/streams/ad.m3u","url":"https://iptv-all.lanesh4d0w.repl.co/andorra/atv","http_referrer":null,"user_agent":null,"cluster_id":1,"_id":"I6cjG2xCBRFFP4sz","status":"error"}
|
||||||
{"title":"BBC News HD","channel":"BBCNewsHD.ad","filepath":"tests/__data__/output/streams/uk.m3u","url":"https://master.starmena-cloud.com/hls/libyas.m3u8","http_referrer":null,"user_agent":null,"cluster_id":3,"_id":"WTbieV1ptnZVCIdn","status":"online","bitrate":0,"frame_rate":29.97,"width":1024,"height":576}
|
{"title":"BBC News HD","channel":"BBCNewsHD.ad","filepath":"tests/__data__/output/streams/uk.m3u","url":"https://master.starmena-cloud.com/hls/libyas.m3u8","http_referrer":null,"user_agent":null,"cluster_id":3,"_id":"WTbieV1ptnZVCIdn","status":"online","bitrate":0,"frame_rate":29.97,"width":1024,"height":576}
|
||||||
|
{"title":"辽源新闻综合 [Geo-blocked]","channel":null,"filepath":"channels/cn.m3u","url":"http://stream2.jlntv.cn/liaoyuan1/sd/live.m3u8","http_referrer":null,"user_agent":null,"cluster_id":4,"_id":"a7iyA6cjtf1iWWAZ"}
|
||||||
{"title":"Tele 2000","channel":"Tele2000.pe","filepath":"tests/__data__/output/streams/pe.m3u","url":"https://servilive.com:3126/live/tele2000live.m3u8","http_referrer":null,"user_agent":null,"cluster_id":1,"_id":"cF0pFVzSn6xFMUF3"}
|
{"title":"Tele 2000","channel":"Tele2000.pe","filepath":"tests/__data__/output/streams/pe.m3u","url":"https://servilive.com:3126/live/tele2000live.m3u8","http_referrer":null,"user_agent":null,"cluster_id":1,"_id":"cF0pFVzSn6xFMUF3"}
|
||||||
{"title":"Kayhan TV","channel":"KayhanTV.af","filepath":"channels/af.m3u","url":"http://208.93.117.113/live/Stream1/playlist.m3u8","http_referrer":null,"user_agent":null,"cluster_id":1,"_id":"cFFpFVzSn6xFMUF3","status":"error"}
|
{"title":"Kayhan TV","channel":"KayhanTV.af","filepath":"channels/af.m3u","url":"http://208.93.117.113/live/Stream1/playlist.m3u8","http_referrer":null,"user_agent":null,"cluster_id":1,"_id":"cFFpFVzSn6xFMUF3","status":"error"}
|
||||||
{"title":"Sharq","channel":"Sharq.af","filepath":"channels/af.m3u","bitrate":2226543,"frame_rate":25,"width":1280,"height":720,"url":"https://forerunnerrtmp.livestreamingcdn.com/output18/output18.stream/playlist.m3u8","http_referrer":null,"user_agent":null,"cluster_id":1,"_id":"u7iyA6cjtf1iWWAZ","status":"online"}
|
{"title":"Sharq","channel":"Sharq.af","filepath":"channels/af.m3u","bitrate":2226543,"frame_rate":25,"width":1280,"height":720,"url":"https://forerunnerrtmp.livestreamingcdn.com/output18/output18.stream/playlist.m3u8","http_referrer":null,"user_agent":null,"cluster_id":1,"_id":"u7iyA6cjtf1iWWAZ","status":"online"}
|
|
@ -6,3 +6,5 @@
|
||||||
{"title":"BBC News HD","channel":"BBCNewsHD.ad","filepath":"tests/__data__/output/streams/uk.m3u","url":"http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8","http_referrer":null,"user_agent":null,"cluster_id":3,"_id":"WTbieV1ptnZVCIdn"}
|
{"title":"BBC News HD","channel":"BBCNewsHD.ad","filepath":"tests/__data__/output/streams/uk.m3u","url":"http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8","http_referrer":null,"user_agent":null,"cluster_id":3,"_id":"WTbieV1ptnZVCIdn"}
|
||||||
{"title":"ABC","channel":"ABC.uk","filepath":"tests/__data__/output/streams/uk.m3u","url":"http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8","http_referrer":null,"user_agent":null,"cluster_id":3,"_id":"WTbieV1ptnZVCI3n"}
|
{"title":"ABC","channel":"ABC.uk","filepath":"tests/__data__/output/streams/uk.m3u","url":"http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8","http_referrer":null,"user_agent":null,"cluster_id":3,"_id":"WTbieV1ptnZVCI3n"}
|
||||||
{"title":"Tele 2000","channel":"Tele2000.pe","filepath":"tests/__data__/output/streams/pe.m3u","url":"https://servilive.com:3126/live/tele2000live.m3u8","http_referrer":null,"user_agent":null,"cluster_id":1,"_id":"cF0pFVzSn6xFMUF3"}
|
{"title":"Tele 2000","channel":"Tele2000.pe","filepath":"tests/__data__/output/streams/pe.m3u","url":"https://servilive.com:3126/live/tele2000live.m3u8","http_referrer":null,"user_agent":null,"cluster_id":1,"_id":"cF0pFVzSn6xFMUF3"}
|
||||||
|
{"title":"辽源新闻综合 [Geo-blocked]","channel":null,"filepath":"channels/cn.m3u","url":"http://stream2.jlntv.cn/liaoyuan1/sd/live.m3u8","http_referrer":null,"user_agent":null,"cluster_id":4,"_id":"a7iyA6cjtf1iWWAZ"}
|
||||||
|
{"title":"辽源新闻综合 [Geo-blocked]","channel":null,"filepath":"channels/cn.m3u","url":"http://stream2.jlntv.cn/liaoyuan1/sd/live.m3u8","http_referrer":null,"user_agent":null,"cluster_id":4,"_id":"b7iyA6cjtf1iWWAZ"}
|
|
@ -21,14 +21,14 @@ it('can save results', () => {
|
||||||
> node scripts/commands/database/update.js
|
> node scripts/commands/database/update.js
|
||||||
|
|
||||||
loading streams...
|
loading streams...
|
||||||
found 8 streams
|
found 10 streams
|
||||||
loading check results...
|
loading check results...
|
||||||
found 6 results
|
found 6 results
|
||||||
loading origins...
|
loading origins...
|
||||||
found 2 origins
|
found 2 origins
|
||||||
updating streams...
|
updating streams...
|
||||||
updated 6 streams
|
updated 6 streams
|
||||||
removed 1 duplicates
|
removed 2 duplicates
|
||||||
done
|
done
|
||||||
`)
|
`)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue