Skip to content

Jonnysol/TimeCapsuleTV

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

40 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“บ TimeCapsuleTV

A Multi-Decade Retro TV Simulator

TimeCapsuleTV is a nostalgic journey through television history, featuring 222,219 authentic videos from the 1950s-2000s with immersive CRT effects and period-appropriate navigation. Built with Python and modern web technologies, it recreates the authentic experience of channel surfing through decades of television content.

TimeCapsuleTV Demo Python Version License

๐ŸŽฏ Features

๐ŸŽฌ Authentic TV Experience

  • 222,219 videos across 6 decades (50s, 60s, 70s, 80s, 90s, 00s)
  • CRT-style visual effects with authentic static and tube glow
  • Period-appropriate sound effects (channel changing, static)
  • Full-screen kiosk mode for immersive viewing

๐ŸŽฎ Interactive Controls

  • Category Navigation: Browse by genre (Music, Comedy, Drama, etc.)
  • Decade Switching: Quick keypad access (7=70s, 8=80s, 9=90s, 0=00s)
  • Random Mode: Shuffle through all available content
  • Hidden Content: Sequential access to rare/special videos
  • Smart Categorization: Real-time video categorization system

๐Ÿ”ง Technical Features

  • HTTP Server Integration: Seamless local content delivery
  • YouTube API Integration: Reliable video playback with fallback strategies
  • Responsive Design: Optimized for various screen sizes
  • Professional Architecture: Clean, maintainable codebase

๐Ÿš€ Quick Start

Prerequisites

  • Python 3.8+
  • Chrome browser (for Selenium WebDriver)
  • Internet connection for YouTube content

Installation

  1. Clone the repository
   git clone https://github.com/yourusername/TimeCapsleTV.git
cd TimeCapsleTV
  1. Run the setup script
   python3 scripts/setup.py
  1. Launch TimeCapsleTV
   python3 src/main.py

The application will open in full-screen kiosk mode. Press ESC to exit.

๐ŸŽฏ Usage

Navigation Controls

Key Action
โ†‘/โ†“ Cycle through categories
โ†/โ†’ Navigate videos within category
R Toggle random mode
S Skip current video
C Categorize current video
H Access hidden content
7/8/9/0 Switch decades (70s/80s/90s/00s)
N Cycle noise levels
ESC Exit application

Categories

Videos are organized into intuitive categories:

  • Music ๐ŸŽต - Music videos and performances
  • Comedy ๐Ÿ˜‚ - Comedy shows and sketches
  • Drama ๐ŸŽญ - Dramatic series and movies
  • News ๐Ÿ“ฐ - News broadcasts and reports
  • Sports โšฝ - Sports coverage and highlights
  • Cartoons ๐Ÿ“บ - Animated content
  • And more! - Commercials, Talk Shows, Specials, etc.

๐Ÿ—๏ธ Architecture

Project Structure

TimeCapsuleTV/
โ”œโ”€โ”€ src/                    # Source code
โ”‚   โ”œโ”€โ”€ core/              # Core application logic
โ”‚   โ”‚   โ”œโ”€โ”€ main.py        # Main application entry
โ”‚   โ”‚   โ”œโ”€โ”€ generator.py   # HTML generation
โ”‚   โ”‚   โ”œโ”€โ”€ server.py      # HTTP server
โ”‚   โ”‚   โ””โ”€โ”€ config.py      # Configuration
โ”‚   โ”œโ”€โ”€ data/              # Data management
โ”‚   โ”‚   โ”œโ”€โ”€ loader.py      # Data loading logic
โ”‚   โ”‚   โ””โ”€โ”€ decades/       # Video data by decade
โ”‚   โ””โ”€โ”€ assets/            # Static assets
โ”‚       โ”œโ”€โ”€ sounds/        # Audio effects
โ”‚       โ””โ”€โ”€ tvstatic.gif   # Static overlay
โ”œโ”€โ”€ scripts/               # Utility scripts
โ”œโ”€โ”€ docs/                  # Documentation
โ””โ”€โ”€ tests/                 # Test suite

Key Components

  • VideoPlayer: Main application controller with Chrome WebDriver integration
  • HTMLGenerator: Dynamic HTML generation with embedded JavaScript
  • TVServer: HTTP server for local content delivery
  • DataLoader: Efficient video data management and organization

๐Ÿ”ง Technical Details

Technologies Used

  • Python 3.8+: Core application logic
  • Selenium WebDriver: Browser automation and control
  • YouTube IFrame API: Video playback with custom controls
  • HTTP Server: Local content delivery
  • CSS3 Animations: Authentic CRT effects
  • JavaScript ES6: Interactive UI and navigation

Performance Optimization

  • Lazy Loading: Videos loaded on-demand
  • Efficient Categorization: Pre-organized data structure
  • Memory Management: Optimized for long-running sessions
  • Fallback Strategies: Robust error handling for blocked content

๐Ÿ“Š Data

The application includes a comprehensive dataset of 222,219 videos across six decades:

Decade Video Count Coverage
1950s 20,693 Early TV era
1960s 27,199 Cultural revolution
1970s 21,840 Golden age
1980s 46,492 MTV generation
1990s 59,241 Digital transition
2000s 46,754 Internet age

Data Source: Video dataset curated and provided by Joey Cato's myretrotvs.com - an incredible resource for authentic retro television content.

๐Ÿ› ๏ธ Development

Running Tests

python3 -m pytest tests/

Code Quality

The codebase follows professional Python standards:

  • PEP 8 code style
  • Type hints where appropriate
  • Comprehensive documentation
  • Modular architecture

๐Ÿ”ง Troubleshooting

Chrome Process Cleanup

If the application doesn't start or you see Chrome-related errors, run the cleanup utility:

python3 scripts/cleanup_chrome.py

This will kill any stuck Chrome or ChromeDriver processes and remove temporary files.

Common Issues

  • Chrome won't start: Run the cleanup script above
  • Port already in use: The app uses ports 8888 and 8080 - ensure they're free
  • Permission errors: Make sure you have write access to the project directory
  • YouTube videos blocked: Use the 'S' key to skip blocked videos

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests for new functionality
  5. Submit a pull request

๐ŸŽจ Customization

Adding New Decades

  1. Place decade JSON file in src/data/decades/
  2. Update DECADES list in src/data/loader.py
  3. Add keyboard shortcut in src/core/generator.py

Modifying Effects

  • Visual Effects: Edit CSS in src/core/generator.py
  • Sound Effects: Replace files in src/assets/sounds/
  • Static Overlay: Update src/assets/tvstatic.gif

๐Ÿค License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • Joey Cato and myretrotvs.com for the original inspiration and comprehensive video data that made this project possible
  • YouTube for providing the video content platform
  • All contributors who helped improve the project

๐Ÿ“ž Contact

Developer: [Your Name]
Email: your.email@example.com
LinkedIn: linkedin.com/in/yourprofile
Portfolio: yourportfolio.com


Created by: Jon Solomon
Purpose: Multi-Decade TV Kiosk Experience
Target Platform: Web / Desktop / Raspberry Pi / Kiosk Displays

Built with โค๏ธ for nostalgia enthusiasts and technology lovers

About

Retro TV kiosk that recreates decades of channel surfing with curated video libraries and CRT-style playback.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages