Video Review
Video Administration (video.admin.php)
Overview
The Video Administration page (video.admin.php) is the central hub for managing all video content in ComusThumbz. This comprehensive page provides tools for browsing, searching, filtering, reviewing, and batch processing videos. It features both Card View and List View display modes, advanced filtering capabilities, comprehensive bulk operations, model and category management, analytics dashboard, filter presets, CSV export, and integrated AI review tools.
Location: Navigate to Admin Panel → Videos → Video Admin
[Screenshot: video-admin-main-view]
System Requirements
PHP Extensions Required
PHP Functions Required
PHP Version
- Minimum: PHP 8.0+
- Recommended: PHP 8.2+
php.ini Settings
# For large video collections and batch operations
memorylimit = 256M
maxexecutiontime = 300
maxinputvars = 5000
postmaxsize = 50M
Performance Note: For sites with 50,000+ videos, increase
memorylimit to 512M and consider using List View for faster performance.
Folder Permissions Required
Installation Requirements
Database Tables Used
The Video Administration page uses the following database tables:
Auto-Created Tables
The following tables are automatically created if they don't exist:
-- Video Admin Notes Table
CREATE TABLE IF NOT EXISTS tblVideoAdminNotes (
noteid INT(11) NOT NULL AUTOINCREMENT,
videoid INT(11) NOT NULL,
userid INT(11) NOT NULL,
notetext TEXT NOT NULL,
priority ENUM('low', 'medium', 'high') DEFAULT 'low',
createdat DATETIME DEFAULT CURRENTTIMESTAMP,
updatedat DATETIME DEFAULT CURRENTTIMESTAMP ON UPDATE CURRENTTIMESTAMP,
PRIMARY KEY (noteid),
INDEX idxvideoid (videoid),
INDEX idxuserid (userid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Video Admin Presets Table
CREATE TABLE IF NOT EXISTS tblVideoAdminPresets (
id INT(11) NOT NULL AUTOINCREMENT,
userid INT(11) NOT NULL,
presetname VARCHAR(100) NOT NULL,
filters JSON NOT NULL,
createdat DATETIME DEFAULT CURRENTTIMESTAMP,
updatedat DATETIME DEFAULT CURRENTTIMESTAMP ON UPDATE CURRENTTIMESTAMP,
PRIMARY KEY (id),
INDEX idxuserid (userid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Config Variables Required
From ct/dat/config.inc.php:
// Database connection
$dbhost = 'localhost';
$db = 'admincomus';
$dbuser = 'youruser';
$dbpasswd = 'yourpassword';
// Site paths
$domainname = 'yourdomain.com';
$sitepath = '/ct';
$basepath = '/path/to/ct';
// Video settings (optional but recommended)
$videouploadmax = 5368709120; // 5GB max upload
$thumbnailwidth = 320;
$thumbnailheight = 180;
File Dependencies
PHP Includes:
ct/admin/includes/inc.php- Core admin functionsct/admin/adminauth.php- Authenticationct/includes/header.php- Page headerct/admin/includes/videocardfunctions.php- Video card utilities
JavaScript Files:
ct/admin/css/videocardenhancements.css- Card styling- Chart.js (CDN) - Analytics dashboard charts
AJAX Endpoints:
ct/admin/ajax/savevideofield.php- Field updatesct/admin/ajax/searchmodelsvideo.php- Model searchct/admin/ajax/videoadminnotes.php- Note management
Features & UI Elements
Stats Dashboard
[Screenshot: video-admin-stats-dashboard]
Four statistic cards display real-time video counts:
View Toggle & Column Customizer
Search & Filter Controls
[Screenshot: video-admin-search-filters]
Search Options
Sort Options
Date Sorting:
- Newest First (ID), Oldest First (ID)
- Upload Date (Newest/Oldest)
- Publish Date (Newest/Oldest)
- Recently Updated
Title Sorting:
- Title A-Z, Title Z-A
Engagement Sorting:
- Most/Least Views, Most Likes
- Highest Rated, Most Downloads
Technical Sorting:
- Longest/Shortest Duration
- Largest/Smallest File Size
- Highest/Lowest Resolution
Category Filters
[Screenshot: video-admin-category-filters]
Displays all categories with checkboxes. When Hide Stats is unchecked, shows:
Model Filter
[Screenshot: video-admin-model-filter]
Type-ahead search for filtering by model name:
- Case-insensitive search
- Auto-complete dropdown
- Click to select and filter
Advanced Filters Section
[Screenshot: video-admin-advanced-filters]
Filter Presets
[Screenshot: video-admin-filter-presets]
Search History
CSV Export
[Screenshot: video-admin-csv-export]
- Export to CSV - Export filtered results (max 10,000 records)
- Includes all visible columns and metadata
- Downloads as CSV file
Bulk Actions Bar
[Screenshot: video-admin-bulk-actions]
When videos are selected, a sticky bulk actions bar appears:
Primary Actions
Extended Bulk Actions Menu
[Screenshot: video-admin-bulk-actions-expanded]
Video Card View
[Screenshot: video-card-view-detail]
Each video card contains:
Card Header
- Checkbox - Select for bulk operations
- Video ID - Unique identifier
- AI Review Badge - Shows if AI reviewed (with score)
- Creator Badge - Shows if uploaded by creator
- Quick Actions: Edit, View, AI Review, Delete
Preview Section
- Preview/Thumbnail - Animated preview or poster image
- Duration - Video length overlay
- Quality Badge - HD/4K/etc. indicator
- Play Button - Preview video
Thumbnail Grid
- Timeline thumbnails from the video
- Click to set as poster
- Lightbox view on click
Basic Information Fields
Categories Section
- Multi-category selector with search
- Add/remove categories with badges
- Auto-save on change
Models Section
- Model search with auto-complete
- Add/remove models with badges
- Create new models inline
- Auto-save on change
Tags Section
- Current tags displayed as badges
- Remove tags by clicking ×
- Add tags via input field
- Tag suggestions button
Statistics Row
Metrics Row
[Screenshot: video-admin-metrics-row]
List View
[Screenshot: video-admin-list-view]
Compact table format with sortable columns:
Default Columns
- Select, ID, Thumbnail, Title, Status, Duration, Views, Quality, Uploaded, Actions
All Available Columns
- select, videoid, thumbnail, title, status, duration, categories, tags, models
- views, impressions, clicks, ctr, likes, rating, quality, uploaddate
- hls, featured, sponsor, dmca, copyright, reports, actions
Column Customization
Click Customize Columns to:
- Check/uncheck columns to show/hide
- Drag columns to reorder
- Yellow items are mandatory (cannot hide)
- Click Apply to save changes
- Click Reset to Default to restore
Sortable Headers
Click any column header to sort. Arrows indicate:
- ↑ Ascending order
- ↓ Descending order
Analytics Dashboard
[Screenshot: video-admin-analytics]
Click Analytics button to open the dashboard modal:
Summary Stats
- Total Videos, Total Views, Total Duration, Average Rating
Charts
AJAX Handlers
The page includes numerous AJAX endpoints for real-time updates:
Step-by-Step Usage
Finding Videos
- Navigate to Admin Panel → Videos → Video Admin
- Enter search term in the Search field
- Select search field (All Fields, Title, etc.)
- Optionally select category checkboxes
- Optionally configure advanced filters
- Click Search
Reviewing Videos
- Search for pending videos (select "Pending" status)
- For each video card:
- Review thumbnail and preview - Set appropriate status (Active/Delete) - Assign categories using multi-category selector - Add models if applicable - Update title and description if needed
- Changes auto-save, or click Save All Changes
Bulk Status Change
- Select videos using checkboxes
- Bulk Actions bar appears at top
- Select new status from dropdown
- Choose scope (Selected/Search Results/All)
- Click Apply Status
- Confirm if creator videos detected
Adding Categories to Multiple Videos
- Select videos for categorization
- Click More Actions to expand menu
- In "Add Category" panel, select category
- Click Add to Selected
- Confirm success toast notification
Scheduling Videos
- Select videos to schedule
- Click More Actions to expand menu
- In "Schedule Publishing" panel:
- Set Start Date - Set End Date
- Click Apply Schedule
- Videos receive random publish dates within range
Using Filter Presets
Save a Preset:
- Configure desired filters
- Click Save Current Filters
- Enter preset name
- Click Save
Load a Preset:
- Select preset from dropdown
- Filters automatically apply
- Click Search to execute
Exporting to CSV
- Configure filters to select desired videos
- Click Export to CSV
- Download starts automatically
- Max 10,000 records per export
Troubleshooting
Common Errors
"Authentication required"
Cause: Session expired or not logged in
Solution: Log in again at the admin panel login page
"Invalid security token"
Cause: CSRF token mismatch (page stale or opened in multiple tabs)
Solution: Refresh the page and try again
"No videos found"
Cause: Search criteria too restrictive
Solution: Clear filters or broaden search terms
"Failed to save models"
Cause: Database connection issue or model already exists
Solution: Check database connection; model may already be assigned
Videos stuck in "processing" status
Cause: videoprocessor.php cron job not running
Solution: Verify cron jobs are configured:
/5 * php /path/to/ct/admin/cron/videoprocessor.php
Performance Issues
Page loads slowly with large video library
Solutions:
- Use List View instead of Card View
- Reduce records per page (20 instead of 100)
- Check Hide Stats to skip category counts
- Check Hide Filters to collapse filter section
- Add database indexes on frequently filtered columns
Model Search Not Working
Model autocomplete returns no results
Cause: AJAX endpoint not accessible
Solution:
- Check
ct/admin/ajax/searchmodelsvideo.phpexists - Verify file permissions (755)
- Check browser console for JavaScript errors
JavaScript Classes
MultiCategorySelector
Handles multi-category selection with search and badges.
ModelSelector
Handles model search, selection, and creation.
VideoAdminNotes
Manages admin notes (add, view, delete) per video.
Translatable Strings
The following strings should be added to backendtranslations.md:
videoadmintitle = "Video Administration"
videoadminsave = "Save All Changes"
videoadmintotal = "Total Videos"
videoadminactive = "Active"
videoadminpending = "Pending"
videoadminprocessing = "Processing"
videoadmincardview = "Card View"
videoadminlistview = "List View"
videoadmincustomize = "Customize Columns"
videoadminanalytics = "Analytics"
videoadminsearch = "Search"
videoadminsearchin = "Search In"
videoadminallfields = "All Fields"
videoadminstatus = "Status"
videoadminsortby = "Sort By"
videoadminperpage = "Per Page"
videoadminexportcsv = "Export to CSV"
videoadminsavefilters = "Save Current Filters"
videoadminloadpreset = "Load Saved Preset"
videoadminmanagepresets = "Manage Presets"
videoadminbulkactions = "Bulk Actions"
videoadminmoreactions = "More Actions"
videoadminapplyto = "Apply to"
videoadminselectedonly = "Selected Videos Only"
videoadminallsearch = "All Videos in Search Results"
videoadminalldatabase = "All Videos in Database"
videoadminclearselection = "Clear Selection"
videoadminchangestatus = "Change Status"
videoadminapplystatus = "Apply Status"
videoadminaddcategory = "Add Category"
videoadminaddtag = "Add Tag"
videoadminaddmodel = "Add Model"
videoadminrandomizeviews = "Randomize Views"
videoadminrandomizelikes = "Randomize Likes"
videoadminrandomizerating = "Randomize Rating"
videoadminschedulepublish = "Schedule Publishing"
videoadmintogglefeatured = "Toggle Featured"
videoadminchangeaccess = "Change Access Type"
videoadminmetadatascore = "Metadata Completeness"
videoadminengagement = "Engagement Metrics"
videoadminseoscore = "SEO Score"
videoadminadminnotes = "Admin Notes"
videoadminscheduling = "Scheduled Publish"
videoadmincreatorwarning = "Creator Content Warning"
videoadminnovideos = "No videos found"
videoadminadjustcriteria = "Try adjusting your search criteria"
Version History
Related Documentation
- Gallery Administration (admin.md) - Gallery management
- AI Video Review (aivideoreview.md) - AI-powered video analysis
- AI Video Batch Review (aivideobatchreview.md) - Batch AI processing
- Video Bulk Import - CSV video import
- Video FTP Upload - FTP video uploads