Skip to main content

Migrating from PeerTube to Vidra

Vidra is fully compatible with PeerTube's REST API (v8.1.0), which means your existing PeerTube clients, embeds, and federation peers continue to work after migration. This guide walks you through the complete process of importing your PeerTube instance into Vidra.

Migration Paths

Vidra supports two migration approaches depending on your comfort level and requirements:

ApproachBest ForDowntimeComplexity
API-Driven MigrationOperators who want a managed, auditable process with dry-run supportMinutes (final cutover only)Low
Manual MigrationOperators who need full control over every step, or have heavily customized PeerTube instancesVariesMedium-High

Both approaches follow the same general workflow:

What Gets Migrated

DataSupportedNotes
Users & AccountsYesUsernames, emails, roles, avatars. Passwords require users to reset (bcrypt hashes are not portable between implementations).
ChannelsYesNames, descriptions, avatars, banners, all metadata
VideosYesMetadata, privacy settings, tags, categories, languages, licences
Video FilesYesWeb video files, HLS segments, thumbnails, previews
CommentsYesFull thread trees with parent-child relationships preserved
PlaylistsYesPlaylist metadata and ordered item lists
Captions/SubtitlesYesVTT and SRT files with language metadata
SubscriptionsYesChannel follow relationships
Abuse ReportsYesReport content and status
BlocklistsYesAccount and server-level blocks
Instance ConfigPartialName, description, and contact info migrate; server-level settings require manual configuration
Federation PeersManualActivityPub followers/following need re-federation after cutover
OAuth ClientsManualThird-party OAuth apps must be re-registered
PluginsNoPeerTube plugins are not compatible with Vidra's plugin system

Prerequisites

Before starting a migration, ensure you have:

  • A running Vidra instance (Getting Started guide)
  • Vidra database migrations applied (make migrate-up)
  • Admin account created on the Vidra instance
  • Network access from Vidra to your PeerTube PostgreSQL database (for API-driven migration)
  • Access to PeerTube's media storage directory or S3 bucket
  • A maintenance window scheduled (for final cutover)
  • PeerTube database backup taken (pg_dump)

PeerTube-to-Vidra Data Mapping

Understanding how PeerTube concepts map to Vidra helps troubleshoot any migration issues:

PeerTube ConceptVidra EquivalentKey Differences
Account + UserUserVidra merges these into a single users table
Video ChannelChannelnamehandle, accountIdaccount_id (via username match)
VideoVideoSame fields; Vidra adds IPFS CID and IOTA payment fields
Video FileVideo FileWeb-video and HLS files stored at same relative paths
Video CommentCommentparent_id preserves threading; Vidra adds approval workflow
Video PlaylistPlaylistDirect mapping including privacy levels
Playlist ElementPlaylist ItemPosition/ordering preserved
Video CaptionCaptionLanguage, format (VTT/SRT), and file reference
User SubscriptionSubscriptionChannel follow relationship
AbuseAbuse ReportReport content, status, and admin messages
Server BlocklistServer BlockInstance-level federation blocks
Account BlocklistAccount BlockUser-level blocks

Estimated Migration Times

These estimates assume a standard PeerTube instance. Large or heavily customized instances may take longer.

Instance SizeUsersVideosDatabase ImportMedia CopyTotal
Small< 100< 500~2 min~10 min~15 min
Medium100-1,000500-5,000~10 min~1 hour~1.5 hours
Large1,000+5,000+~30 minHours (depends on storage)Hours

Media copy time depends heavily on storage size and transfer speed between your PeerTube storage and Vidra storage backend.

Next Steps

  1. Plan your migration — Inventory your PeerTube data and choose a migration path
  2. API-driven migration — Use Vidra's Migration ETL API for a managed import
  3. Manual migration — Step-by-step guide for manual database and media migration
  4. Storage migration — Move video files, thumbnails, and streaming playlists
  5. Cutover and validation — DNS switch, post-migration checks, and rollback plan
  6. Troubleshooting — Common issues and solutions