Skip to content
forked from nosoop/moombox

YouTube livestream downloader manager.

License

Notifications You must be signed in to change notification settings

morabitom/moombox

 
 

Repository files navigation

moombox

Web frontend for moonarchive to manage downloads of multiple YouTube livestreams and premieres.

Design shamelessly ripped off from hoshinova, an equivalent frontend for ytarchive.

image

Installation

via Python

Python 3.11 or newer is required.

python -m venv .venv
source .venv/bin/activate # or .venv\Scripts\activate.bat on Windows
pip install git+https://github.com/nosoop/moombox

# run the application with a single worker since all of the state is within the process
hypercorn moombox.app:create_app() -w 1

via Docker / Podman

moombox is also available as a containerized application that can be run via Docker or Podman. This method isn't as extensively tested, so please let me know whether or not you have problems configuring moombox this way.

The current iteration of the container uses ffmpeg as it's available in Debian Bookworm.

# the working directory is set to '/data' in the application
podman run -p 5000:5000 -v /opt/moombox:/data ghcr.io/nosoop/moombox

You must mount a writable path on the host to /data so moombox can generate /data/staging and /data/output directories. The staging directory should be attached to a fast storage device as it'll be used while downloading and muxing the final file before being moved to /data/output.

You can also pass --user to run moombox as a different user if executing docker or podman as root. Make sure that, if it already exists, /data/config/database.db3 is writable.

via Docker Compose

You may also run moombox using Docker Compose instead.

  1. Copy config.container.toml to ./data/config/config.toml and make the necessary user-specific modifications.
  2. Start the container using the provided docker-compose.yml file:
    docker compose up -d

Configuration

Configuration is controlled by a config.toml in the instance path, as described by Flask. See config.example.toml for documentation on the features.

If you launch moombox without a configuration file, the "Configuration" tab in the web interface will tell you which location it expects one in.

You can set the MOOMBOX_INSTANCE_PATH environment variable to override the location. The Docker / Podman releases set the instance path to /data/config this way, and you should mount a folder to that location when running it (as described in the installation instructions).

Important

These days, a proof-of-origin token is practically a requirement when downloading from YouTube. moonarchive's section on proof-of-origin downloads covers this extensively.

It is strongly recommended to set both downloader.po_token and either downloader.visitor_data or downloader.cookie_file before downloading a file; otherwise YouTube may block your connection from accessing videos. To obtain that information:

License

Released under the MIT license.

About

YouTube livestream downloader manager.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 78.1%
  • HTML 16.7%
  • CSS 4.2%
  • Other 1.0%