Files
cdnplayerjs/README.md
2026-05-19 09:31:42 +00:00

72 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CDNPlayerJS
Статический плеер на базе `Playerjs` с поддержкой:
- прямых потоков (`.m3u8`, `.mp4`, и т.д.);
- удалённых плейлистов `.m3u` и `.txt`;
- шифрованных ссылок (AES-GCM) с TTL 24 часа.
## Как запустить локально
```bash
python3 -m http.server 8080
```
Открой: `http://localhost:8080`
## Как передать поток
Только через адресную строку:
- `?src=https://example.com/live.m3u8`
- `?file=https://example.com/live.m3u8`
- `?stream=https://example.com/live.m3u8`
Пример:
```text
https://your-domain.com/?src=https%3A%2F%2Fexample.com%2Flive.m3u8
```
Если открыть страницу с `src/file/stream`, приложение автоматически:
1. запускает поток;
2. шифрует ссылку;
3. заменяет URL в адресной строке на `?enc=...`.
Шифрованная ссылка активна 24 часа, после чего становится невалидной для всех.
## Плейлисты `.m3u` и `.txt`
Для `.m3u` поддерживаются строки `#EXTINF` + URL.
Для `.txt` поддерживаются форматы:
- `https://example.com/stream.m3u8`
- `Название|https://example.com/stream.m3u8`
- `Название,https://example.com/stream.m3u8`
После загрузки список собирается во внутренний playlist PlayerJS, каналы можно переключать в плеере.
## Шифрованные ссылки
- Формат: `?enc=...` (опционально `&k=...` для кастомного ключа).
- Алгоритм: AES-GCM.
- Срок жизни токена: 24 часа.
> Важно: ключ в URL (`k`) — это обфускация, а не абсолютная криптографическая защита от целевого взлома.
## Деплой
### Netlify
Проект уже содержит `netlify.toml`.
- Build command: не нужен
- Publish directory: `.`
### Vercel
Проект уже содержит `vercel.json`.
- Framework preset: `Other`
- Build command: не нужен
- Output directory: `.`