Resumable uploads
Chunked uploads that survive a dropped connection, with the size limit set by you rather than by a platform.
Self-hosted · PHP 8.2+ · no Composer step
VideoHub is a complete video-sharing site you install on your own server - uploads, transcoding, adaptive streaming, channels and moderation.
No platform cut of your revenue, no rules written by somebody else, and no third-party service sitting between your audience and your videos. You hold the database and the disk.
What’s Included
Not a starter kit to build on. The features people expect from a video platform are already here.
Chunked uploads that survive a dropped connection, with the size limit set by you rather than by a platform.
Every upload is re-encoded into a ladder of quality presets, with thumbnails and seek sprites generated alongside.
Streams follow the viewer’s bandwidth instead of stalling, and they can pin a quality by hand when they want to.
A vertical, swipeable feed for short-form video, sitting alongside the standard player rather than replacing it.
Banners, avatars, subscriber counts and a personalised feed, so an audience has somewhere to gather.
Threaded comments with pinning and sorting, community posts, direct messages, and in-app plus email notifications.
Upload VTT or SRT per video, or let Whisper generate a first pass automatically and edit it from there.
A JSON REST API with per-user developer tokens, and an embeddable player for putting videos on other sites.
Upload To Playback
The part of a video site that is genuinely hard to build is the part that runs after the upload finishes. VideoHub does it for you.
Storage goes to local disk or any S3-compatible bucket, switchable from the admin settings.
Running It
A public video site is only as good as the tools you have when somebody abuses it.
Viewers report videos, reports land in one place, and you act on them without going through the database.
Role-based access with conservative defaults, so a moderator account cannot quietly become an administrator.
Public, unlisted or private, scheduled publishing, age restriction, and per-video comment and download toggles.
Activity logging and backup tooling in the panel, so an incident leaves a trail and a bad day has a way back.
TOTP with recovery codes, configurable password policy, login-attempt lockout and CAPTCHA support.
Google and GitHub sign-in with email verification, plus sign-out across every device from one screen.
Private likes, subscriptions and playlists, hidden subscriber counts, and a pause switch for watch and search history.
A small CMS for your terms, privacy and about pages, and category management that does not need a developer.
Look & Language
Theme, logo, favicon and social image are settings rather than a code fork, and the interface speaks more than one language out of the box.
Right-to-left is handled as a first-class direction, not a mirrored afterthought - the same standard we hold this site to.
Requirements
Modest, and checked for you on the installer’s first screen before you commit to anything.
| Component | Required | Notes |
|---|---|---|
| PHP | 8.2 or newer | Extensions: pdo_mysql, mbstring, openssl, json, ctype |
| Database | MySQL 5.7+ or MariaDB 10.4+ | An empty database and a user with full privileges on it |
| Web server | Apache or Nginx | Apache needs mod_rewrite and AllowOverride All; Nginx needs PHP-FPM |
| FFmpeg | Recommended | Without it, uploads are served in their original format only |
| Storage | Local disk or S3-compatible | The storage/ folder must be writable |
| Also recommended | gd, curl, fileinfo | Image processing, social sign-in and S3, upload type detection |
| Composer | Not needed | No build step and no external service required to start |
Comfortable on a VPS; a dedicated server is worth it once transcoding is running constantly.
FAQ
The questions worth answering before you run a video platform of your own.
PHP 8.2 or newer with the pdo_mysql, mbstring, openssl, json, ctype extensions, plus MySQL 5.7+ or MariaDB 10.4+. Apache needs mod_rewrite with AllowOverride All; Nginx needs a PHP-FPM configuration. The installer checks every requirement, and whether storage/ is writable, on its first screen - so you see any problem before you commit.
No. VideoHub runs on plain PHP with no Composer step and nothing to sign up for before your first upload. That is deliberate: it means the package you download is the software you run, and a shared host with no shell access can still install it.
Strongly recommended rather than strictly required. With FFmpeg you get the quality ladder, HLS packaging, thumbnails and seek sprites. Without it VideoHub still runs, but every upload is served in its original format only - no adaptive streaming, and whatever the uploader sent is what every viewer downloads.
On local disk or on any S3-compatible object storage, set from the admin settings. Local disk is the simplest way to start; object storage makes sense once the library outgrows the server, or when you want the files served from closer to your audience.
There is an HLS-only mode that serves segmented streams instead of one downloadable file, and downloads can be toggled per video. It raises the effort required a long way past right-click-and-save. It is not DRM, though: no browser-based player can make a stream impossible to capture, so treat it as a deterrent rather than a guarantee.
Yes. A complete Arabic translation ships alongside the English catalogue, with genuine right-to-left support through the interface rather than a mirrored stylesheet added at the end. There is also a dark and light mode, and a theme you can customise without editing templates.
Upload VTT or SRT files per video, or let Whisper generate a first pass automatically. Auto-generated captions are a starting point rather than a finished transcript - they are worth editing before you rely on them for accessibility.
Yes. A JSON REST API with per-user developer tokens covers the same data the web interface uses, so you can script uploads, read metadata, manage users or build a front end of your own against it. Individual videos also carry an embeddable player for other sites.
Through a web installer. It checks the requirements, takes your database credentials, imports the schema and creates the first administrator account. No command line, no build process, no asset compilation.
Get VideoHub
One install, on hardware you control, with the database and the disk in your hands.
Need somewhere to run it? Our VPS and dedicated servers already meet every requirement above.