Написанный на Python сайт-сервис предоставляет возможность хранить информацию о фильмах и сериалах. Вы можете загружать медиа-контент сами, ставить оценки и писать рецензии — все это будет доступно после регистрации на сайте.
Ниже приведены технические особенности MoviePoint
Фреймворк Flask предоставляет возможность создания быстрого приложения с возможностью его будущего масштабирования.
Библиотека для работы с БД SQLAlchemy применяет технологию ORM (Object-Relational Mapping), т. е. дает возможность для синхронизации объектов Python.
Все запросы БД выведены как отдельные API как независимые программные компоненты.
В основе работы HLS (HTTP Live Streaming) лежит принцип разбиения цельного потока на небольшие фрагменты, последовательно скачиваемые по HTTP. Это позволяет при просмотре видео не скачивать полностью весь медиафайл (его объем может быть больше 10Гб!), а загружать видео по частям, по мере просмотра клиентом предыдущих фрагментов.
Проигрыватель сайта предоставляет возможность выбрать качество просматриваемого клиентом видео. Каждое видео представляет из себя множество одинаковых медиафайлов, отличавшихся по разрешению. Их объединяет общий плейлист формата m3u8, который направляет проигрыватель, какие файлы загружать в зависимости от выбранного разрешения.
flowchart TD
A[Movie X.mp4] -->|Load to MoviePoint| B(master.m3u8)
B --> C{stream_0.m3u8}
B --> D{stream_1.m3u8}
B --> E{stream_2.m3u8}
B --> F{stream_3.m3u8}
B --> S{audio_en.m3u8}
B --> T{subs_ru.m3u8}
C --> |1920x1080| G(data0000.ts)
G --> H(data0001.ts)
H --> I(...)
D --> |1280x720| J(data0000.ts)
J --> K(data0001.ts)
K --> L(...)
E --> |842x480| M(data0000.ts)
M --> N(data0001.ts)
N --> O(...)
F --> |640x360| P(data0000.ts)
P --> Q(data0001.ts)
Q --> R(...)
S --> |English audio| U(data0000.ts)
U --> W(data0001.ts)
W --> X(...)
T --> |Russian subtitles| Y(subs/ru.vtt)
Перед включением сайта в конфигурационном файле server.ini, укажите путь для сохранения фильмов и сериалов (*MediaDataPath="ЗДЕСЬ УКАЖИТЕ ПУТЬ"). Рекомендуется указывать отдельную пустую папку, располагающуюся на диске с большим объемом.
В указанную директорию расположите три исполняемых файла, приложенных в архиве HLS_Attachments.zip
Не забудьте установить все библиотеки и фреймворки, описанные в файле requirements.txt
.
Для запуска сайта достаточна одна команда:
python main.py
Чтобы стать администатором на сайте, создайте учётную запись и укажите свой идентификатор (ID типа базе данных) в файле admins.txt (если администраторов несколько, укажите каждого в новой строке). Перезапустите приложение, и изменения вступят в силу. С правами администратора можно редактировать опубликованные другими пользователями фильмы и сериалы.