Horahora logo

Horahora

  •  0 ratings
In category: Archiving and Digital Preservation (DP)

About Horahora

Video hosting website and video archival manager for Niconico, Bilibili, and Youtube.

  •   399  
  •   0  
  •   0  
  •   0  
Github stats:
  •  Commits: N/A  
  •   N/A  
  •   N/A  
  •  Latest commit: N/A  

Deploy this app to Linode with a free $100 credit!

Languages/Platforms/Technologies:
Lincenses:

More about Horahora

Horahora

Locally archive, browse, and share videos from nearly any site

Horahora is a collaborative archival management tool.

It allows you to: - download and continuously sync videos from any link supported by yt-dlp - browse through downloaded videos by channel, tag, views, rating, upload date, etc - manage archival with a group of friends or untrusted users, with downloads being prioritized by the number of users subscribed to the video's category - manage site user permissions, ban users, delete videos, and view audit logs for admin/moderator actions

Join our Discord: https://discord.gg/7te9UrbydS

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

A word of warning: this application is pretty heavy, and setup can be complicated. If you're looking for something simpler, check out: https://github.com/tubearchivist/tubearchivist

Usage Instructions (START HERE)

  1. Install docker, python3, and docker-compose
  2. ./up.sh
  3. respond to requests for input
  4. Wait a minute, then visit localhost:80
  5. Login as admin/admin
    • note that with the current video approval workflow, non-admin users won't be able to view unapproved videos
    • it's recommended to visit /password-reset immediately to change the admin user's default password if using in an untrusted environment
  6. navigate to the archival requests page from the hamburger menu, add a link, and wait a few minutes

That's it for basic usage, and should work. If that doesn't work, bug me on Discord.

Contributing

Contributions are always welcome. Please see CONTRIBUTING.md for details, including an architectural rundown.

Designs

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

More Detailed Feature List

  • performant at 170k videos, even for all varieties of search queries
  • support for videos which have been deleted from the origin (e.g. if the original site deletes the video, there's no impact on your instance)
  • support for comments, view count, user ratings
  • video approval workflow which prevents normal users from seeing videos before they've been approved
  • support for TOS/privacy policy
  • content archival modeled as one-to-many user subscriptions, so users "subscribe" to a category (link), and links are prioritized according to the number of subscribers
  • support for any website supported by yt-dlp which has the required metadata (but I only use YT/nicovideo atm)
  • artificial user creation: archived videos will be grouped under a Horahora user created for the archived website's user (e.g. if I archive from Russia Today, then a Russia TOday user will be created on Horahora)
  • support for yt-dlp tunneling via Gluetun (see below for setup)
  • dark mode toggle

Advanced Use Cases

Other Storage Backends (s3, backblaze, anything s3-compatible)

By default, Horahora will store videos locally using Minio.

If you don't want videos to be stored locally, modify .env, 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.

Tunneling yt-dlp Traffic

Horahora comes with Gluetun support out of the box. To enable it, you'll need to set the proper values in the "vpn config" section of the secrets.env.template file. This will enable your yt-dlp traffic to be tunneled through your VPN provider via a local Gluetun HTTP proxy.

Backup Restoration

(this currently isn't functioning, I'll fix it later)

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.

Dedication

This repository is dedicated to my friend Zihao of otomads.com (defunct). I hope you're still alive...

Comments (0)

Please login to join the discussion on this project.

Horahora Reviews (0)

Overall Rating

None

based on 0 ratings

Please login to review this project.

No reviews for this project yet.

↑ back to top

pCloud Lifetime

Popular Projects

FluxBB

in Social Networks and Forums
 33k    0    0    0  

Nextcloud

in File Transfer & Synchronization
 20k    1    1    0  

Libreddit

in Social Networks and Forums
 7k    0    1    0  

CasaOS

in Self-hosting Solutions
 5k    0    0    0  

Dashboard

in Personal Dashboards
 5k    0    0    0  

Audiobookshelf

in Audio Streaming
 5k    0    1    0  

Mediagoblin

in Photo and Video Galleries
 4k    0    0    0  

Most Discussed

Nextcloud

in File Transfer & Synchronization
 20k    1    1    0  

Tube Archivist

in Automation
 3k    0    1    0  

OneDev

in Project Management
 2k    0    0    0  

iodine

in Proxy
 2k    0    0    0  

Alf.io

in Booking and Scheduling
 2k    0    0    0  

sysPass

in Password Managers
 1k    0    0    0  

Misskey

in Social Networks and Forums
 2k    0    0    0  
Linux VPS from $11/yr.
RackNerd VPS for $11.38/mo

Top Rated Projects

Gitea

 1 rating
in Project Management

Bagisto

 1 rating
in E-commerce

LinkAce

 1 rating
in Bookmarks and Link Sharing

Pydio

 1 rating
in File Transfer & Synchronization

Audiobookshelf

 1 rating
in Audio Streaming

Nextcloud

 1 rating
in File Transfer & Synchronization

Seafile

 1 rating
in File Transfer & Synchronization

Categories

You May Also Be Interested In

CKAN logo
CKAN cover

CKAN

CKAN is a tool for making open data websites.

Ganymede logo
Ganymede cover

Ganymede

Twitch VOD and Live Stream archiving platform. Includes a r…

Archivematica logo
Archivematica cover

Archivematica

Mature digital preservation system designed to maintain sta…