Video Bulk Import
Overview
The Video Bulk Import page allows administrators to import multiple video entries at once from CSV-formatted data. This powerful tool supports three import modes (download, hotlink, embed), comprehensive field mapping through saveable "playlists," automatic model and sponsor creation, category assignment (up to 10 per video), random rating/view assignment, scheduled publishing, duplicate detection, and asynchronous batch processing with real-time progress tracking.
[Screenshot: video-bulk-import-main-form]
Getting to This Page
- Log in to the admin panel at
ct/admin/ctlogin.php - In the left sidebar, click Videos
- Click Bulk Import or navigate directly to
ct/admin/videobulkimport.php
This page is designed for importing video metadata from external sources, sponsor feeds, or CSV exports. All data is previewed before final import.
System Requirements
This page requires the following system dependencies to function properly.
PHP Requirements
Required PHP Extensions
Required PHP Functions
These functions must NOT be in
disablefunctions in php.ini:
Folder Permissions
Server Requirements
Installation Requirements
Folders Required
External Dependencies
Page Layout
Header Section
The page header displays:
- Title: "Video Bulk Import" with a video icon
- Breadcrumb: Dashboard > Videos > Bulk Import
[Screenshot: video-bulk-import-header]
Playlist Section
The playlist section allows you to save and load field mapping configurations:
[Screenshot: video-bulk-import-playlist-section]
Field Mapping Section
The dynamic field mapping section lets you configure how CSV columns map to database fields:
[Screenshot: video-bulk-import-field-mapping]
Available Field Mappings
Import Methods (3 Modes)
Understanding import modes is critical for proper video setup. Choose the right mode based on your content hosting strategy.
Mode 1: Download & Keep Video
How it works:
- Downloads video file from URL to local storage
- Full video processing (thumbnails, conversions)
- Keeps original file for local playback
- Status:
processing(videoprocessor.php handles the rest)
Best for:
- Videos you want to host yourself
- Full player control (overlays, watermarks, ads)
- Building local video library
Mode 2: Hotlink + Process (Thumbnails)
How it works:
- Downloads video temporarily
- Generates thumbnails and preview clips
- Deletes original video file
- Stores hotlink URL for playback
- Status:
processing
Best for:
- Embedding external videos with your thumbnails
- Saving storage space
- Videos where you need thumbnail control but not file hosting
Mode 3: Embed (iframe code)
How it works:
- Stores iframe embed code directly
- Requires thumbnail URL in CSV
- No video file downloaded
- Status:
pending(thumbnail verification)
Best for:
- YouTube, Vimeo, XVideos, etc. embeds
- Quick import without processing
- External hosting with minimal storage
Player Feature Note: Embedded videos (Mode 3) do NOT support player features like custom overlays, watermarks, ads, or playlists. Use Download or Hotlink modes for full player control.
Import Options
Category Assignment
Model Handling
Sponsor Handling
Random Assignment
Scheduling
Duplicate Detection
Step-by-Step Usage
Task 1: Basic Video Import (Download Mode)
This workflow imports videos with download for full player control.
Steps:
- Navigate to Admin Panel → Videos → Bulk Import
- Configure field mappings:
- Column 1: Select "Video URL"
- Column 2: Select "Title"
- Column 3: Select "Description"
- Column 4: Select "Tags"
- Column 5: Select "Categories"
- Click Add Column for additional fields
- Set Import Method to "1. Download & Keep Video"
- Set Status to "Processing" (for automatic processing)
- Paste your CSV data:
https://example.com/video1.mp4,Amazing Video,Great description,tag1;tag2,Amateurs
https://example.com/video2.mp4,Another Video,More description,tag3;tag4,Brunettes
- Configure options:
- Set random rating range: 1-10
- Set random views range: 1000-12000
- Check Check Duplicates if needed
- Click Preview Import
- Review the preview table
- Click Confirm & Start Import
- Monitor real-time progress
Result: Videos are added with status "processing". The videoprocessor.php cron will handle downloading and processing.
[Screenshot: video-bulk-import-download-progress]
Task 2: Embedded Video Import
Steps:
- Configure field mappings:
- Column 1: Select "Title"
- Column 2: Select "Embedded Code"
- Column 3: Select "Thumbnail URL"
- Column 4: Select "Categories"
- Set Import Method to "3. Embed (iframe code)"
- Paste CSV data with embed codes:
My Video Title,<iframe src="https://player.example.com/embed/12345" width="640" height="360"></iframe>,https://example.com/thumb.jpg,Category Name
- Preview and import
Result: Videos are added with embed code. Thumbnail URL is stored for display.
Task 3: Multi-Category Import with Sponsor
Steps:
- In Force Categories section, click Add Category multiple times
- Select up to 10 categories (first is primary)
- Select a Force Sponsor from dropdown (or let it auto-create)
- Enter Force Sub-Sponsor if needed
- Import data
Result: All videos assigned to multiple categories with sponsor tracking.
Task 4: Scheduled Release Import
Steps:
- Check Random Schedule Between Dates
- Set Schedule Date A (start): e.g., 2025-01-01 00:00
- Set Schedule Date B (end): e.g., 2025-12-31 23:59
- Import data
Result: Each video gets a random publishdate within the specified range.
Progress Interface
During import, the progress interface displays:
Progress Bar
- Animated striped bar showing percentage complete
- Percentage text (e.g., "45%")
Status Line
- Shows "Processed X of Y" count
- Indicates "Complete" when finished
Log Panel
- Scrollable list of import events
- Color-coded messages
Statistics Cards
Navigation Buttons
- Admin Home: Return to dashboard
- New Import: Start a fresh import
[Screenshot: video-bulk-import-progress-stats]
Error Messages & Troubleshooting
Common Errors
Troubleshooting
Problem: Import stalls at 0%
Solution:
- Check browser console for JavaScript errors
- Verify
ct/admin/temp/folder exists and is writable - Check
ct/logs/videobulkimport.logfor PHP errors
Problem: Videos stuck in "processing" status
Solution:
- Verify videoprocessor.php cron is running
- Check
ct/logs/videoprocessor/for errors - Ensure FFmpeg is installed and accessible
Problem: Models/sponsors not linking
Solution:
- Verify column is mapped correctly (Models = field #5, Sponsor = field #27)
- Check log for auto-creation messages
- Models should appear in tblModels after import
Problem: Categories not assigning
Solution:
- Ensure category names match exactly (case-sensitive)
- Check if categories exist in tblCategories with hide=0
- First category becomes primary (isprimary=1)
Related Pages
- Video Review (
ct/admin/video.admin.php) - Manage imported videos - Video Processor - Cron job that processes downloaded videos
- Models (
ct/admin/models.php) - Manage auto-created models - Sponsors (
ct/admin/sponsors.php) - Manage auto-created sponsors - Categories (
ct/admin/categories.php) - Manage category list
Tips & Best Practices
Use playlists for repeat imports: If you regularly import from the same sponsor feed, save a playlist with all mappings and options configured.
Test with small batches first: Before importing 1000+ videos, test with 5-10 rows to verify field mappings work correctly.
Embedded videos lack player features: If you need watermarks, overlays, or custom ads, use Download or Hotlink mode instead of Embed.
Use random scheduling for drip content: Set a date range to automatically spread video releases over weeks or months.
Auto-detect models when possible: Enable model auto-detection to automatically link videos to existing models mentioned in titles.
Processing happens via cron: Videos with status "processing" are handled by videoprocessor.php. Ensure this cron is running.
Translatable Strings
The following text elements should be added to backend translations: