Skip to content

ColinGamez/VHSLibrary

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

VHS Library

A retro Windows desktop application for managing and playing your video collection with a beautiful Windows Vista Aero glass aesthetic.

VHS Library WPF LibVLC

Features

Modern Vista Aero Interface

  • Translucent glass windows with soft gradients
  • Segoe UI typography
  • Classic Aero blue/cyan color scheme
  • Smooth drop shadows and blur effects

🎬 Comprehensive Video Support

  • Powered by VLC for maximum codec compatibility
  • Supports: MP4, MKV, AVI, MOV, WMV, FLV, WEBM, MPEG, VOB, TS, M2TS, OGV, 3GP, and more
  • Graceful fallback to MediaElement when needed
  • Plays local files and streaming URLs

📚 Library Management

  • Add, edit, delete video entries
  • Track title, year, genre, notes, and file path
  • Mark videos as watched/unwatched
  • Search and filter by title, genre, or watch status
  • Sort by title, year, or date added

🎮 Built-in Video Player

  • Full playback controls (play, pause, stop)
  • Seekable progress bar
  • Volume control
  • Time display (current/duration)
  • Fullscreen-capable

Requirements

  • Windows 10/11
  • .NET 8.0 Runtime

Installation

  1. Clone the repository:
git clone https://github.com/YOUR_USERNAME/VHSLibrary.git
cd VHSLibrary
  1. Build the project:
cd VHSLibrary
dotnet build
  1. Run the application:
dotnet run

Usage

Adding a Video

  1. Click "+ Insert New Tape"
  2. Enter title, year, genre, and notes
  3. Browse for a video file or enter a streaming URL
  4. Optional: Mark as "Watched"
  5. Click Save

Playing a Video

  1. Select a tape from the list
  2. Click "▶ Play" button
  3. Use the built-in player controls

Searching & Filtering

  • Search: Type in the search box to filter by title or notes
  • Genre: Select a genre from the dropdown
  • Status: Toggle "Watched" or "Unwatched" filters
  • Sort: Choose sorting method (Title, Year, Date Added)

Technology Stack

  • Framework: .NET 8.0 WPF
  • Architecture: MVVM Pattern
  • Video Player: LibVLCSharp 3.9.0
  • Data Storage: JSON (Newtonsoft.Json)
  • Styling: Custom Windows Vista Aero theme

Project Structure

VHSLibrary/
├── Commands/           # ICommand implementations
├── Models/            # Data models (Tape)
├── Services/          # Data persistence service
├── ViewModels/        # MVVM ViewModels
├── Views/             # XAML windows
├── Resources/         # Styles and resources
└── VHSLibrary.csproj  # Project file

Video Format Support

Fully Supported (via VLC):

  • MP4, MKV, AVI, MOV, WMV, FLV, WEBM
  • MPEG, MPG, M2V, VOB, TS, MTS, M2TS
  • OGV, 3GP, 3G2, ASF, DIVX, M4V

Fallback Support (via MediaElement):

  • WMV, AVI, MPG, MPEG, MP4

Data Storage

Video library data is stored at:

%APPDATA%\VHSLibrary\tapes.json

Screenshots

VLC-powered video player with Vista Aero styling

License

MIT License - feel free to use and modify!

Contributing

Contributions welcome! Please open an issue or submit a pull request.

Acknowledgments

  • LibVLCSharp for comprehensive video codec support
  • Windows Vista design team for the timeless Aero aesthetic

About

A VHS App for windows

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages