Hypertube is a web application that enables users to search for and watch videos directly on the site. The application integrates a video player and uses the BitTorrent protocol to download videos while streaming them simultaneously. This means users can start watching the video as it's downloading, without waiting for the full download to complete.
To enhance search capabilities, the system queries at least two external sources for video content. Users can select a video, which will be downloaded from the server and streamed to the player directly.
- Search Engine: Queries multiple external sources for video content.
- Video Streaming: Supports streaming videos while downloading via BitTorrent.
- Authentication: Custom authentication provided by the
auths
app. - Dependency Management: Managed with Poetry, with support scripts for installing dependencies and running migrations.
- Pre-Commit Hooks: Formatting enforced using
flake8
to maintain code quality. - Optional Docker Support: Docker and Docker Compose are provided to optionally run the project in a containerized environment.
- Installation
- Environment Variables
- Running the Project
- Docker Setup (Optional)
- Development Workflow
- Code Style
- Contributing
- License
Before you start, ensure you have the following tools installed:
- Python 3.9+
- Poetry: For dependency management.
- PostgreSQL: The project uses PostgreSQL as its database.
-
Clone the Repository:
git clone <repository-url> cd hypertube
-
Install Dependencies: Run the script
check_dependencies.sh
to install all dependencies using Poetry:./check_dependencies.sh
Run the following command
cp .env.example .env