A sophisticated CLI application that synchronizes metadata from Lyceum FM's RadioDJ playlist to OBS via text files.
Bridging the gap between Google Sheets and OBS streaming software for dynamic broadcast information display.
Lyceum FM is the premier radio station of Lyceum International School Nugegoda, one of Sri Lanka's leading educational institutions. Our radio station serves as a dynamic platform for students to explore broadcasting, journalism, and media production while entertaining our community with quality programming.
- Student-Driven Content: Entirely managed and operated by talented students
- Educational Excellence: Part of Lyceum International School's commitment to holistic education
- Community Impact: Broadcasting quality content that resonates with our school community and beyond
- Professional Training: Providing real-world broadcasting experience to aspiring media professionals
| Feature | Description |
|---|---|
| 🔄 Real-time Sync | Live metadata synchronization from Google Sheets |
| 🎵 Smart Parsing | Automatic song and artist information separation |
| 📺 OBS Integration | Direct compatibility with OBS streaming software |
| ⚙️ Configurable | Customizable refresh rates and settings |
| 🛡️ Error Handling | Robust error management and status logging |
| 🌍 UTF-8 Support | Full support for international characters |
- Python 3.x
- Google Sheets API access
- Public Google Spreadsheet with RadioDJ metadata
- The following Python packages:
requests
-
Set up your Google Sheet:
- Make the sheet public (Anyone with link can view)
- Note down the Spreadsheet ID
- Ensure metadata is in format: "Song Name - Artist Name"
-
Configure the script:
SPREADSHEET_ID = 'your-spreadsheet-id' SHEET_NAME = 'Sheet1' ROW_NUMBER = 1 INTERVAL_MS = 1000 API_KEY = 'your-api-key'
git clone https://github.com/D3PI-CODE/LyceumFMMetaSync.git
cd LyceumFMMetaSyncpip install requestsUpdate the configuration variables in the script with your API key and spreadsheet ID.
Run the script:
python LyceumFMMetaSync.pyThe script will:
- Monitor the specified Google Sheet row
- Split song and artist information
- Write to:
current_song.txtcurrent_artist.txt
- Add Text (GDI+) or (Freetype 2) sources to your scene
- Check "Read from file"
- Select the respective output files:
- For song name:
current_song.txt - For artist name:
current_artist.txt
- For song name:
We welcome contributions from the community! Feel free to:
- 🐛 Report bugs - Help us improve by reporting issues
- 💡 Suggest features - Share your ideas for new functionality
- 🔧 Submit pull requests - Contribute code improvements
- 📖 Improve documentation - Help make our docs better
Created by Aken Dep for Lyceum FM
🎙️ Lyceum FM - Revolutionizing the Soundwaves 🎙️