Free & open source — MIT License

Every feature an adult tube site needs.

Import, rank, backup, optimize, translate — all built in.

Content Management

Manage hundreds of thousands of videos.

Full CRUD for every entity your tube site needs. Search, filter, paginate, bulk-edit. Built to handle massive libraries without slowing down.

  • Videos — Title, slug, description, duration, quality, thumbnails, embed codes, download URLs, tags
  • Categories — Hierarchical with slug generation, video counts, SEO URLs, bulk assignment
  • Tags — Tag-based discovery with auto-suggest and bulk tagging
  • Performers — Profiles with bio, photo, filmography count, dedicated listing pages
  • Studios — Studio entities with profile pages and content attribution
  • Comments — Built-in commenting with moderation queue and spam filtering
500K+
Videos supported
6
Entity types
<50ms
Admin response time
Import & Automation

10,000 videos imported in minutes.

Drop a CSV or JSON file and watch your tube site populate itself. Column mapping, duplicate detection, batch assignment — the entire pipeline is automated.

  • Mass Importer — CSV/JSON with 10,000+ videos, column mapping, preview before commit
  • Duplicate Detection — Skip already-imported videos automatically
  • Batch Assignment — Assign categories, tags, performers, studios in bulk
  • Catalogue API — Browse and import curated adult video packs with one click
  • Cron System — WordPress-style pseudo-cron, no system crontab needed
  • Auto Backups — Scheduled daily backups with retention. Download, restore or delete from admin
title,duration,category,tags
"Video Title",324,"Amateur","hd,pov"
"Another One",512,"MILF","4k"
... 9,997 more rows
✓ 10,000 videos imported in 47s
CTR Ranking System

Best content rises. Stale content drops.

Every video gets a click-through-rate score with time decay. No manual curation needed — the algorithm handles it.

ctr_score = (views / (impressions + 50)) * EXP(-0.01 * days_age)
  • Impression Tracking — Collect/flush pattern batches impressions for performance
  • Auto Recalculation — Scores recalculate every 10 minutes via cron
  • Bot Filtering — User-agent detection, only real visitors count
  • 13 Hooks — Override sort, similar, recommended, trending, listings
  • Toggle On/Off — Plugin on = CTR active. Plugin off = core fallback
13
Hook points
10min
Score refresh
0
Manual work
SEO & Discovery

Every page optimized. Every crawl counts.

TubePress generates all the technical SEO you need — sitemaps, structured data, meta tags — so you can focus on content, not configuration.

  • XML Sitemaps — Auto-generated for videos, categories, performers, pages
  • Meta Tags — Customizable per entity with auto-generated fallbacks
  • Structured Data — JSON-LD: VideoObject, BreadcrumbList, WebPage
  • Open Graph — OG + Twitter Card tags for social previews
  • Hreflang — Automatic alternate tags for multilingual content
  • Canonicals — Prevents duplicate content across pagination and filters
<!-- Auto-generated by TubePress -->
<script type="application/ld+json">
  {
    "@type": "VideoObject",
    "name": "Video Title",
    "duration": "PT5M24S"
  }
</script>
Themes & Appearance

Your brand, your look.

Self-contained theme packages with templates, CSS, JS, and functions. Customize everything from the admin panel — no code required.

  • Theme System — Self-contained packages: templates, CSS, JS, functions
  • Appearance Editor — Colors, fonts, logo, favicon from admin, no code
  • Video Cards — Customizable with hover previews, duration and quality badges
  • Footer Builder — Multi-column footer with configurable links
  • FluidPlayer — Responsive HTML5 player with quality switching
  • Static Pages — TinyMCE editor with multilingual content + SEO
No code needed
ZIP
Theme install
100%
Customizable
Plugins & Extensibility

WordPress-style hooks. Extend anything.

15+ hook points with filters and actions. Build plugins that override video sorting, inject scripts, modify templates, or add entirely new features.

  • Hook System — Filters: video.sort_options, video.similar, video.trending, theme.template_data, head.css, footer.scripts
  • Plugin Lifecycle — boot, activate, deactivate, install, uninstall
  • Plugin Manager — Install, activate, deactivate from admin. ZIP upload
  • CronManager API — Register recurring tasks from any plugin
// plugin.php
public function boot(): void
{
  HookSystem::filter(
    'video.sort_options',
    [$this, 'customSort']
  );
}
Multilingual

30+ languages. RTL included.

Complete interface translations, per-page content translation with fallback, and automatic browser language detection. Arabic, Hebrew, Farsi — fully supported.

  • 30+ Languages — Complete interface translations, one setting to switch
  • RTL Support — Full right-to-left layout for Arabic, Hebrew, Farsi
  • Content Translation — Per-language pages and categories with fallback
  • Language Detection — Auto-detect from browser headers or URL prefix
English Français Deutsch Español Português Italiano العربية 日本語 中文 한국어 Русский Türkçe Nederlands Polski Čeština +15 more
Security & Users

Hardened by default. No compromises.

Every layer is protected — from password hashing to rate limiting. Admin, user roles, 2FA, CSRF tokens, and spam filtering are all built in.

  • Roles & Permissions — Admin and user roles with gate-based access control
  • Two-Factor Auth — TOTP-based 2FA per user account
  • SpamGuard — Honeypot fields + optional CAPTCHA
  • Rate Limiting — Per-IP limits on login, registration, API, comments
  • Argon2ID — Strongest password hashing in modern PHP
  • CSRF Protection — Unique tokens on every POST request
Argon2ID hashing
2FA
TOTP built-in
CSRF
Every POST protected
Technical Excellence

Modern PHP. Zero dependencies.

No framework, no bloat. Custom Router, Database, Auth — all built from scratch with PHP 8.4 strict types. Fast, light, predictable.

  • PHP 8.4 — Strict types, named arguments, enums, no legacy code
  • No Framework — Custom Router, Database, Auth. Zero deps, fast
  • MySQL / MariaDB — PDO, prepared statements, optimized indexes
  • 46+ Migrations — Versioned SQL migrations. Safe upgrades
  • 5-Step Installer — Web wizard, no CLI required. Live in five minutes
  • Apache & Nginx — .htaccess + Nginx config included
// Zero dependencies. Just PHP.
declare(strict_types=1);
final class Router {
  public static function get(
    string $path,
    callable $handler
  ): void { ... }
}

Ready to launch your adult tube site?

Free, open source, built for adult content.