Skip to content

Self-hosted video-hosting website and yt-dlp video archival manager for Niconico, Bilibili, and Youtube

License

Notifications You must be signed in to change notification settings

Painless68/horahora

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Horahora

Self-hosted Video-hosting Website and yt-dlp Video Archival Manager for Niconico, Bilibili, and Youtube

Horahora is a collaborative archival management tool.

It allows you to:

  • subscribe to categories of content (e.g. a tag on Niconico) and it will upload all videos in those categories to the site, then intelligently sync new videos in those categories, keeping the archive up-to-date at all times
  • browse through and watch downloaded videos with ease, with a built-in video recommender system to help you discover new content
  • query the archive by tag or title, and sort by views, average rating, or upload date
  • manage archival with a group of friends, with downloads being prioritized by the number of users subscribed to the video's category
  • easily host your own instance with docker-compose

Archival capabilities are provided by yt-dlp (a fork of youtube-dl).

https://discord.gg/vfwfpctJRZ

Local Use Instructions

  1. Install docker and docker-compose
  2. (Optional) If you don't want videos to be stored locally, modify secrets.env.template, adding the relevant values for your use case.
    • ORIGIN_FQDN: this will be the public URL of your Backblaze bucket WITH NO TRAILING SLASH. E.g. for me it's: https://f002.backblazeb2.com/file/otomads for backblaze, or https://horahora-dev-otomads.s3-us-west-1.amazonaws.com for s3.
    • STORAGE_BACKEND: 'b2' or 's3' (depending on which you want to use)
    • STORAGE_API_ID: the API ID for your Backblaze account if using backblaze, otherwise blank
    • STORAGE_API_KEY: The API key for your Backblaze account, otherwise blank
    • BUCKET_NAME: the storage bucket name for b2 or s3

If you want to use S3, you need to include your aws credentials and config in $HOME/.aws. The config and credentials will be mounted into the relevant services at runtime. See https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html for more information.

  1. sudo make up
  2. Visit localhost:3000 (or if it doesn't work initially, try to wait a minute)
    • if it never works, check the container logs, and/or bug me on discord
    • you'll need to login as admin/admin to view videos that have been encoded. There's an approval workflow which prevents unapproved videos from being viewed by regular users.
  3. If everything comes up correctly, once you're logged in, visit the archival requests tab, and add a new category of content to be archived. If everything works, videos will start to be downloaded, and will be made available after a delay.

Contributing

Contributions are always welcome (and quite needed atm). If you'd like to contribute, and either aren't sure where to start, or lack familiarity with the relevant components of the project, please send me a message on Discord, and I'll help you out as best I can.

Security

There are currently several shortcomings with respect to security. As such, I'd recommend only sharing an instance with a group of trusted users (friends). This will be fixed in future updates, and will be backwards compatible if possible.

Designs

Designs are listed here: https://github.com/horahoradev/horahora-designs

Task Roadmap

Missing features are tracked using Trello.

Our Trello board is: https://trello.com/b/Rm5TPR4Q/horahora

Note: this is currently outdated

Backup Restoration

Backup_service writes psql dumps of the three databases (userservice, videoservice, scheduler) to backblaze. To restore, place the three latest dumps in the sql dir, docker-compose up, run migrations, then run restore.sh from within the container.

About

Self-hosted video-hosting website and yt-dlp video archival manager for Niconico, Bilibili, and Youtube

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 70.6%
  • JavaScript 12.2%
  • HCL 4.6%
  • Shell 4.4%
  • Dockerfile 3.4%
  • CSS 3.0%
  • Other 1.8%