A modern broadcasting-style school music scheduling system with support for both YouTube playlists and local audio files.
- 🎵 Dual Media Support: YouTube playlists and local audio files
- ⏰ Advanced Scheduling: Weekly schedule with hourly precision
- 🎨 Modern UI: Tkinter-based interface with custom Pretendard fonts
- 🔄 Conflict Prevention: Unified media controller prevents simultaneous playback
- 📊 Real-time Monitoring: Live broadcast log and current playing status
- 💾 Persistent Settings: Automatic configuration saving
YoutubeAutoPlayer/
├── new_ui.py # Main Tkinter GUI application
├── video_scheduler.py # Core scheduling engine
├── media_controller.py # Unified media playback controller
├── play_video.py # YouTube video playback with anti-detection
├── audio_player.py # Local audio file playback
├── font_manager.py # Custom font management (Pretendard)
├── anti_detection.py # Chrome anti-detection settings
├── schedule.json # Schedule data storage
├── Pretendard-1.3.9/ # Custom font files
└── README.md # This file
- Python 3.7+
- tkinter (usually included with Python)
- Selenium WebDriver
- pygame (for audio playback)
- Chrome browser
- Install required packages:
pip install -r requirements.txt-
Chrome Extensions Setup (Important for team members):
- The program uses Chrome with specific settings for YouTube playback
- Chrome extensions need to be installed individually on each machine
- When first running the program, Chrome will open with extension installation enabled
- Install any required extensions manually as they cannot be shared via Git
-
Run the application:
python new_ui.py- Schedule Setup: Set weekly schedules with precise start/end times
- Media Configuration: Add YouTube URLs or local audio files
- Monitor: View real-time broadcast logs and current status
- Font Display: Automatic Pretendard font loading for modern UI
profile/ folder contains Chrome user data but extensions cannot be shared
- Each team member must install Chrome extensions individually
- The program creates a Chrome profile locally but extensions require manual installation
- Settings and schedules in
schedule.jsonwill sync across team members - Font files are included and will load automatically
Chrome extensions are tied to:
- User-specific security tokens
- Installation metadata stored outside the profile folder
- Google account authentication
- Machine-specific permissions
Solution: Each team member should manually install required Chrome extensions when first running the program.