Обновлён README
This commit is contained in:
99
README.md
99
README.md
@@ -19,53 +19,38 @@
|
|||||||
Список проверяется и обновляется мной вручную.
|
Список проверяется и обновляется мной вручную.
|
||||||
Гарантию работоспособности никто не даёт.
|
Гарантию работоспособности никто не даёт.
|
||||||
|
|
||||||
## English description
|
* [Как использовать этот список?](#как-использовать-этот-список)
|
||||||
|
* [Формат `playlists.ini`](#формат-playlistsini)
|
||||||
> **Mirrored repo**: https://git.axenov.dev/anthony/iptv
|
* [API](#api)
|
||||||
|
* [Развёртывание проекта](#развёртывание-проекта)
|
||||||
This repo contains IPTV-playlists free to use with your media-player.
|
* [Apache](#apache)
|
||||||
|
* [Nginx](#nginx)
|
||||||
Most of them are in russian or CIS languages but you can find something interesting here for yourself.
|
* [Расширенные возможности](#расширенные-возможности)
|
||||||
|
* [Собственный код html/css/js](#собственный-код-htmlcssjs-)
|
||||||
Also there are some handy tools to make your own playlist or find channels you want in playlists listed here.
|
* [Очистка кеша twig](#очистка-кеша-twig)
|
||||||
|
* [Скачать все плейлисты](#скачать-все-плейлисты)
|
||||||
You can use this repo according to [LICENSE](LICENSE) conditions.
|
* [Проверить каналы плейлиста](#проверить-каналы-плейлиста)
|
||||||
|
* [Поиск каналов в одном плейлисте](#поиск-каналов-в-одном-плейлисте)
|
||||||
I'm too lazy to translate and support the whole project in ru and en, sorry, guys.
|
* [Поиск каналов во всех плейлистах](#поиск-каналов-во-всех-плейлистах)
|
||||||
|
* [Создать плейлист из нужных каналов](#создать-плейлист-из-нужных-каналов)
|
||||||
|
* [Как создать свой собственный плейлист?](#как-создать-свой-собственный-плейлист)
|
||||||
|
* [Использованный стек](#использованный-стек)
|
||||||
|
* [Лицензия](#лицензия)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Документация
|
|
||||||
|
|
||||||
- [Как использовать этот список?](#howtouse)
|
|
||||||
- [Формат playlists.ini](#iniformat)
|
|
||||||
- [API](#api)
|
|
||||||
- [Развёртывание проекта](#deploy)
|
|
||||||
- [Расширенные возможности](#tools)
|
|
||||||
- [Как создать свой собственный плейлист](#howtomake)
|
|
||||||
- [Использованный стек](#stack)
|
|
||||||
- [Лицензия](#license)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<a id="howtouse"></a>
|
|
||||||
|
|
||||||
## Как использовать этот список?
|
## Как использовать этот список?
|
||||||
|
|
||||||
Чтобы подключить плейлист, нужно в настройках медиаплеера указать ссылку в следующем формате:
|
Чтобы подключить плейлист, нужно в настройках медиаплеера указать ссылку в следующем формате:
|
||||||
|
|
||||||
```
|
```
|
||||||
iptv.axenov.dev/<ID>
|
iptv.axenov.dev/<ID>
|
||||||
iptv.axenov.dev?<ID> (устаревший формат)
|
|
||||||
iptv.axenov.dev/?<ID> (устаревший формат)
|
|
||||||
```
|
```
|
||||||
|
|
||||||
где `<ID>` - один из идентификаторов, указанных в [`playlists.ini`](playlists.ini) в квадратных скобках.
|
где `<ID>` - один из идентификаторов, указанных в [`playlists.ini`](playlists.ini) в квадратных скобках.
|
||||||
|
|
||||||
Либо провернуть всё то же самое через браузер.
|
Либо провернуть всё то же самое через браузер.
|
||||||
|
|
||||||
<a id="iniformat"></a>
|
|
||||||
|
|
||||||
## Формат `playlists.ini`
|
## Формат `playlists.ini`
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
@@ -99,8 +84,6 @@ redirect = 1
|
|||||||
|
|
||||||
Плейлистов с редиректами может быть сколько угодно, но они не должны быть цикличными.
|
Плейлистов с редиректами может быть сколько угодно, но они не должны быть цикличными.
|
||||||
|
|
||||||
<a id="api"></a>
|
|
||||||
|
|
||||||
## API
|
## API
|
||||||
|
|
||||||
Можно получать состояние плейлистов из этого сборника при помощи метода:
|
Можно получать состояние плейлистов из этого сборника при помощи метода:
|
||||||
@@ -184,8 +167,6 @@ GET https://iptv.axenov.dev/<ID>/json
|
|||||||
* `code` -- [код ошибки curl](https://curl.se/libcurl/c/libcurl-errors.html)
|
* `code` -- [код ошибки curl](https://curl.se/libcurl/c/libcurl-errors.html)
|
||||||
* `message` -- текст ошибки curl
|
* `message` -- текст ошибки curl
|
||||||
|
|
||||||
<a id="deploy"></a>
|
|
||||||
|
|
||||||
## Развёртывание проекта
|
## Развёртывание проекта
|
||||||
|
|
||||||
Локально достаточно выполнить `./iptv init && ./iptv open`.
|
Локально достаточно выполнить `./iptv init && ./iptv open`.
|
||||||
@@ -193,13 +174,16 @@ GET https://iptv.axenov.dev/<ID>/json
|
|||||||
На сервере опционально можно настроить реверс-прокси до контейнера, например, чтобы настроить доступ по доменному
|
На сервере опционально можно настроить реверс-прокси до контейнера, например, чтобы настроить доступ по доменному
|
||||||
имени, изменить порт, подключить SSL-сертификаты или др.
|
имени, изменить порт, подключить SSL-сертификаты или др.
|
||||||
|
|
||||||
|
### Apache
|
||||||
|
|
||||||
Если на сервере, на котором запускаются контейнеры, стоит apache2, то, чтобы использовать его как реверс-прокси, нужно:
|
Если на сервере, на котором запускаются контейнеры, стоит apache2, то, чтобы использовать его как реверс-прокси, нужно:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ sudo a2enmod proxy proxy_http proxy_balancer lbmethod_byrequests
|
$ sudo a2enmod proxy proxy_http proxy_balancer lbmethod_byrequests
|
||||||
$ sudo nano /etc/apache2/sites-available/iptv.conf
|
$ sudo nano /etc/apache2/sites-available/iptv.conf
|
||||||
```
|
```
|
||||||
```apacheconf
|
|
||||||
|
```
|
||||||
# example.com заменить на свой адрес
|
# example.com заменить на свой адрес
|
||||||
|
|
||||||
<VirtualHost example.com:80>
|
<VirtualHost example.com:80>
|
||||||
@@ -232,13 +216,43 @@ $ sudo nano /etc/apache2/sites-available/iptv.conf
|
|||||||
# Enter
|
# Enter
|
||||||
# Ctrl+X
|
# Ctrl+X
|
||||||
```
|
```
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
$ sudo a2ensite iptv
|
$ sudo a2ensite iptv
|
||||||
$ # для подгрузки включенных модулей выполнить именно restart, а не reload
|
$ # для подгрузки включенных модулей выполнить именно restart, а не reload
|
||||||
$ sudo systemctl restart apache2
|
$ sudo systemctl restart apache2
|
||||||
```
|
```
|
||||||
|
|
||||||
<a id="tools"></a>
|
### Nginx
|
||||||
|
|
||||||
|
```
|
||||||
|
$ sudo nano /etc/nginx/sites-available/iptv.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
# example.com заменить на свой адрес
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
server_name example.com;
|
||||||
|
access_log /var/log/nginx/access.log;
|
||||||
|
error_log /var/log/nginx/error.log;
|
||||||
|
location / {
|
||||||
|
proxy_pass http://127.0.0.1:8080;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Ctrl+O
|
||||||
|
# Enter
|
||||||
|
# Ctrl+X
|
||||||
|
```
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ sudo ln -s /etc/nginx/sites-available/iptv.conf /etc/nginx/sites-enabled/iptv.conf
|
||||||
|
$ sudo systemctl reload apache2
|
||||||
|
```
|
||||||
|
|
||||||
## Расширенные возможности
|
## Расширенные возможности
|
||||||
|
|
||||||
### Собственный код html/css/js
|
### Собственный код html/css/js
|
||||||
@@ -312,7 +326,6 @@ cd src && composer clear-views
|
|||||||
|
|
||||||
Для сохранения в файл следует добавить `> myfile.m3u` или `>> myfile.m3u` в конец команды.
|
Для сохранения в файл следует добавить `> myfile.m3u` или `>> myfile.m3u` в конец команды.
|
||||||
|
|
||||||
<a id="howtomake"></a>
|
|
||||||
## Как создать свой собственный плейлист?
|
## Как создать свой собственный плейлист?
|
||||||
|
|
||||||
1. Скачать все плейлисты, указанные в [`playlists.ini`](playlists.ini):
|
1. Скачать все плейлисты, указанные в [`playlists.ini`](playlists.ini):
|
||||||
@@ -334,19 +347,15 @@ cd src && composer clear-views
|
|||||||
4. Вручную: удалить нерабочие, мусорные и продублировавшиеся (по ссылкам) каналы.
|
4. Вручную: удалить нерабочие, мусорные и продублировавшиеся (по ссылкам) каналы.
|
||||||
5. Вручную: добавить плейлист в IPTV-плеер и перепроверить результат.
|
5. Вручную: добавить плейлист в IPTV-плеер и перепроверить результат.
|
||||||
|
|
||||||
<a id="stack"></a>
|
|
||||||
|
|
||||||
## Использованный стек
|
## Использованный стек
|
||||||
|
|
||||||
* [docker compose](https://docs.docker.com/compose/)
|
* [docker compose](https://docs.docker.com/compose/)
|
||||||
* [php8.1-fpm](https://www.php.net/releases/8.1/en.php)
|
* [php8.3-fpm](https://www.php.net/releases/8.3/ru.php)
|
||||||
* [FlightPHP](https://flightphp.com/learn)
|
* [SlimPHP v4](https://www.slimframework.com/docs/v4/)
|
||||||
* [Bootstrap 5](https://getbootstrap.com/docs/5.0/getting-started/introduction/)
|
* [Bootstrap 5](https://getbootstrap.com/docs/5.0/getting-started/introduction/)
|
||||||
* [nginx](https://nginx.org/ru/)
|
* [nginx](https://nginx.org/ru/)
|
||||||
* bash
|
* bash
|
||||||
|
|
||||||
<a id="license"></a>
|
|
||||||
|
|
||||||
## Лицензия
|
## Лицензия
|
||||||
|
|
||||||
[The MIT License](LICENSE)
|
[The MIT License](LICENSE)
|
||||||
|
|||||||
Reference in New Issue
Block a user