From 2ffa63775d73ae68cadee1f573ff7124e792e8d7 Mon Sep 17 00:00:00 2001 From: foxixus Date: Thu, 14 Aug 2025 11:35:51 +0000 Subject: [PATCH] Add WebTorrent Player(Experimental) --- WEBTORRENT_PLAYER.md | 271 ------------------------------------------- 1 file changed, 271 deletions(-) delete mode 100644 WEBTORRENT_PLAYER.md diff --git a/WEBTORRENT_PLAYER.md b/WEBTORRENT_PLAYER.md deleted file mode 100644 index e100c5d..0000000 --- a/WEBTORRENT_PLAYER.md +++ /dev/null @@ -1,271 +0,0 @@ -# 🎬 NeoMovies WebTorrent Player - -Современный плеер для просмотра торрент файлов прямо в браузере с умной интеграцией TMDB. - -## 🚀 Особенности - -- ✅ **Полностью клиентский** - все торренты обрабатываются в браузере -- ✅ **Умная навигация** - автоматическое определение сезонов и серий -- ✅ **TMDB интеграция** - красивые названия серий вместо имен файлов -- ✅ **Мультиформат** - поддержка MP4, AVI, MKV, WebM и других -- ✅ **Потоковое воспроизведение** - начинает играть до полной загрузки -- ✅ **Прогресс загрузки** - отображение скорости и процента загрузки - -## 📋 API Endpoints - -### Открытие плеера -```http -GET /api/v1/webtorrent/player?magnet={MAGNET_LINK} -``` -или через заголовок: -```http -GET /api/v1/webtorrent/player -X-Magnet-Link: {MAGNET_LINK} -``` - -### Получение метаданных -```http -GET /api/v1/webtorrent/metadata?query={SEARCH_QUERY} -``` - -## 💻 Примеры использования - -### 1. Простое открытие плеера -```javascript -const magnetLink = "magnet:?xt=urn:btih:..."; -const encodedMagnet = encodeURIComponent(magnetLink); -window.open(`/api/v1/webtorrent/player?magnet=${encodedMagnet}`); -``` - -### 2. Открытие через заголовок -```javascript -fetch('/api/v1/webtorrent/player', { - headers: { - 'X-Magnet-Link': magnetLink - } -}).then(response => { - // Открыть в новом окне - window.open(URL.createObjectURL(response.blob())); -}); -``` - -### 3. Получение метаданных -```javascript -fetch('/api/v1/webtorrent/metadata?query=Breaking Bad') - .then(response => response.json()) - .then(data => { - if (data.success) { - console.log('Метаданные:', data.data); - // data.data содержит информацию о сериале/фильме - } - }); -``` - -## 🎮 Управление плеером - -### Клавиши управления -- **Space** - пауза/воспроизведение -- **Click** - выбор серии/файла - -### UI элементы -- **Информация о медиа** - название, год, описание (верхний левый угол) -- **Список файлов** - выбор серий/частей (нижняя панель) -- **Информация о серии** - название и описание текущей серии -- **Прогресс загрузки** - скорость и процент загрузки - -## 🔧 Как это работает - -### 1. Загрузка торрента -```mermaid -graph LR - A[Magnet Link] --> B[WebTorrent Client] - B --> C[Parse Metadata] - C --> D[Filter Video Files] - D --> E[Display File List] -``` - -### 2. Получение метаданных -```mermaid -graph LR - A[Torrent Name] --> B[Extract Title] - B --> C[Search TMDB] - C --> D[Get Movie/TV Data] - D --> E[Get Seasons/Episodes] - E --> F[Display Smart Names] -``` - -### 3. Воспроизведение -```mermaid -graph LR - A[Select File] --> B[Stream from Torrent] - B --> C[Render to Video Element] - C --> D[Show Progress] -``` - -## 📊 Структура ответа метаданных - -### Для фильмов -```json -{ - "success": true, - "data": { - "id": 155, - "title": "Тёмный рыцарь", - "type": "movie", - "year": 2008, - "posterPath": "https://image.tmdb.org/t/p/w500/...", - "backdropPath": "https://image.tmdb.org/t/p/w500/...", - "overview": "Описание фильма...", - "runtime": 152, - "genres": [ - {"id": 28, "name": "боевик"}, - {"id": 80, "name": "криминал"} - ] - } -} -``` - -### Для сериалов -```json -{ - "success": true, - "data": { - "id": 1396, - "title": "Во все тяжкие", - "type": "tv", - "year": 2008, - "posterPath": "https://image.tmdb.org/t/p/w500/...", - "overview": "Описание сериала...", - "seasons": [ - { - "seasonNumber": 1, - "name": "Сезон 1", - "episodes": [ - { - "episodeNumber": 1, - "seasonNumber": 1, - "name": "Пилот", - "overview": "Описание серии...", - "runtime": 58 - } - ] - } - ], - "episodes": [ - { - "episodeNumber": 1, - "seasonNumber": 1, - "name": "Пилот", - "overview": "Описание серии..." - } - ] - } -} -``` - -## 🛡️ Безопасность - -### ⚠️ ВАЖНО: Клиентский подход -- Торренты обрабатываются **ТОЛЬКО в браузере пользователя** -- Сервер **НЕ ЗАГРУЖАЕТ** и **НЕ ХРАНИТ** торрент файлы -- API используется только для получения метаданных из TMDB -- Полное соответствие законодательству - сервер не участвует в торрент активности - -### 🔒 Приватность -- Никакая торрент активность не логируется на сервере -- Магнет ссылки не сохраняются в базе данных -- Пользовательские данные защищены стандартными методами API - -## 🌟 Умные функции - -### Автоматическое определение серий -Плеер автоматически распознает: -- **S01E01** - формат сезон/серия -- **Breaking.Bad.S01E01** - название с сезоном -- **Game.of.Thrones.1x01** - альтернативный формат - -### Красивые названия -Вместо: -``` -Breaking.Bad.S01E01.720p.BluRay.x264-DEMAND.mkv -``` -Показывает: -``` -S1E1: Пилот -``` - -### Информация о сериях -- Название серии из TMDB -- Описание эпизода -- Продолжительность -- Изображения (постеры) - -## 🎯 Примеры интеграции - -### React компонент -```jsx -function WebTorrentPlayer({ magnetLink }) { - const openPlayer = () => { - const url = `/api/v1/webtorrent/player?magnet=${encodeURIComponent(magnetLink)}`; - window.open(url, '_blank', 'fullscreen=yes'); - }; - - return ( - - ); -} -``` - -### Получение метаданных перед открытием -```javascript -async function openWithMetadata(magnetLink, searchQuery) { - try { - // Получаем метаданные - const metaResponse = await fetch(`/api/v1/webtorrent/metadata?query=${encodeURIComponent(searchQuery)}`); - const metadata = await metaResponse.json(); - - if (metadata.success) { - console.log('Найдено:', metadata.data.title, metadata.data.type); - } - - // Открываем плеер - const playerUrl = `/api/v1/webtorrent/player?magnet=${encodeURIComponent(magnetLink)}`; - window.open(playerUrl, '_blank'); - - } catch (error) { - console.error('Ошибка:', error); - } -} -``` - -## 🔧 Технические детали - -### Поддерживаемые форматы -- **Видео**: MP4, AVI, MKV, MOV, WMV, FLV, WebM, M4V -- **Кодеки**: H.264, H.265/HEVC, VP8, VP9 -- **Аудио**: AAC, MP3, AC3, DTS - -### Требования браузера -- Современные браузеры с поддержкой WebRTC -- Chrome/Edge 45+, Firefox 42+, Safari 11+ -- Поддержка WebTorrent API - -### Производительность -- Потоковое воспроизведение с первых секунд -- Умное кэширование наиболее просматриваемых частей -- Адаптивная буферизация в зависимости от скорости - -## 🚦 Статусы ответов - -| Код | Описание | -|-----|----------| -| 200 | Успешно - плеер загружен или метаданные найдены | -| 400 | Отсутствует magnet ссылка или query параметр | -| 404 | Метаданные не найдены в TMDB | -| 500 | Внутренняя ошибка сервера | - ---- - -**🎬 NeoMovies WebTorrent Player** - современное решение для просмотра торрентов с соблюдением всех требований безопасности и законности! 🚀 \ No newline at end of file