Video Archive Manager (VAM) Ver5.70
January 11, 2026 ยท View on GitHub
๐ฌ Integrated Solution for Large-Scale Video Collection Management
A comprehensive video archive management system integrating video file management, automatic thumbnail generation, and preview functionality.
๐ข About This Repository
This is the original codebase that served as the foundation for VAM-Seek โ a lightweight 15KB web library.
Why is this public?
- VAM-Seek (the web version) has been released, so it makes sense to share the original implementation as a reference
- This 100k-line Python application demonstrates the algorithms and concepts that were distilled into the web library
- Important: This is a functional but messy codebase built through raw effort and iteration โ not production-quality code
What you'll find here:
- Grid-based video navigation algorithms
- X-continuous timestamp calculation (the core of VAM-Seek)
- Desktop application implementation with PyQt6
- Real-world examples of video frame extraction and thumbnail generation
What this is NOT:
- A showcase of clean code or best practices
- A recommended starting point for new projects
- Production-ready enterprise software
If you're looking for the clean, modern implementation, check out VAM-Seek instead.
โจ Key Features
๐ File Management
- Hierarchical Folder Management: Intuitive navigation with directory tree
- Fast Search: Search by filename, metadata, and tags
- History Management: Automatic save and restore of folder browsing history
๐ผ๏ธ Thumbnails & Preview
- Automatic Thumbnail Generation: High-quality grid image generation from videos
- Dynamic Preview: Real-time video preview functionality
- Grid Marker: Visual marking of playback position
๐งบ Basket Feature
- Temporary Storage: Temporary grouping of selected videos
- Folder Structure Support: Basket management preserving hierarchical structure
- Multiple Baskets: Simultaneous management of multiple baskets for different purposes
๐ต Media Playback
- Built-in Player: High-functionality media player based on PyQt6
- External Player Integration: Integration with VLC, MPC-HC, etc.
- Playlist Feature: Continuous playback and shuffle play support
๐ง Advanced Management Features
- Metadata Management: Comments, tags, custom information
- Database Integration: Fast data management with SQLite
- Backup: Automatic data backup functionality
- Plugin System: Extensible architecture
๐๏ธ System Architecture
Code Scale
- Total Lines: ~100,000 lines (Python files)
- File Count: 200+ modules
- Organized: 45,000+ lines systematically organized
Major Components
Core Components
main_window.py(2,894 lines) - Main application windowdirectory_tree.py(3,900 lines) - Directory management systemplayer_dock_widget.py(3,568 lines) - Video player interfacepreview_window.py(4,748 lines) - Preview & thumbnail display
Data Management
database_manager.py(1,626 lines) - Database operationsthumbnail_generator.py(2,011 lines) - Thumbnail generation enginesettings_manager.py(714 lines) - Settings management system
User Interface
basket_widget.py(1,385 lines) - Basket feature UItree_search_manager.py(1,354 lines) - Search functionality systemgrid_marker_manager.py(1,206 lines) - Grid marker management
๐ ๏ธ Technology Stack
Frameworks & Libraries
- GUI: PyQt6 - Modern cross-platform UI
- Database: SQLite - Lightweight high-speed data storage
- Image Processing: PIL/Pillow - Thumbnail generation & image manipulation
- Video Processing: OpenCV - Frame extraction & video analysis
- Multimedia: PyQt6.QtMultimedia - Media playback
Architecture Patterns
- Singleton Pattern: Settings & database management
- Factory Pattern: Player & repository creation
- Observer Pattern: UI updates & event management
- Strategy Pattern: File processing & search functionality
๐ Operating Environment
System Requirements
- OS: Windows 10/11, macOS, Linux
- Python: 3.8 or higher
- RAM: 4GB+ recommended (for large collections)
- Storage: 1GB+ free space for cache
Dependencies
PyQt6>=6.4.0
Pillow>=9.0.0
opencv-python>=4.5.0
numpy>=1.21.0
๐ Installation & Setup
1. Clone Repository
git clone https://github.com/unhaya/VAM-original.git
cd VAM-original
2. Install Dependencies
pip install -r requirements.txt
3. Launch Application
python main.py
๐ Usage
Initial Setup
- Launch the application
- Specify video folder in "Settings"
- Adjust thumbnail generation settings
- Confirm database initialization complete
Basic Operations
- Folder Selection: Select video folder from left tree
- Preview: Check thumbnail preview in central area
- Playback: Double-click to play with built-in player
- Basket: Add to basket from right-click menu
๐ฏ Code Quality & Structure
Internal Organization
All major files are systematically organized with functional comment blocks:
# ==========================================
# Initialization & Settings Management
# Class initialization, basic settings, state management
# ==========================================
# ==========================================
# UI Construction & Layout Management
# User interface construction, display control
# ==========================================
# ==========================================
# Data Processing & Management
# File operations, database integration
# ==========================================
Maintainability Features
- Functional Grouping: Logical aggregation of related methods
- Consistent Naming Convention: Clear documentation in Japanese
- Error Handling: Robust exception handling implementation
- Resource Management: Proper memory & file handle management
๐๏ธ Project Structure
vam5.70/
โโโ core/ # Core logic
โ โโโ database_manager.py # Database management
โ โโโ thumbnail_generator.py # Thumbnail generation
โ โโโ ...
โโโ gui/ # User interface
โ โโโ main_window.py # Main window
โ โโโ widgets/ # UI components
โ โโโ dialogs/ # Dialogs
โ โโโ ...
โโโ config/ # Settings management
โโโ utils/ # Utilities
โโโ players/ # External player integration
โโโ plugins/ # Plugin system
โโโ backup/ # Backup files
๐ Development & Maintenance
Recent Major Update (September 2024)
- โ Large-scale Code Organization: Systematic restructuring of 45,000+ lines
- โ Functional Organization: Improved internal structure of all major files
- โ Maintainability Improvement: Clear structuring with comment blocks
- โ Operational Stability Confirmation: All functionality verified
Future Improvements
- Functional class splitting of large files
- Plugin API expansion
- Unit test addition
- Internationalization support (i18n)
- Performance optimization
๐ License
This project is published under the MIT License. See the LICENSE file for details.
๐ Acknowledgments
- PyQt6 Community
- OpenCV Contributors
- All testers and feedback providers
Video Archive Manager - The new standard for video collection management