Yoto Playlist Alarms is a comprehensive alarm management application that transforms how families use their Yoto playlists for wake-up and bedtime routines.
๐ https://yoto-playlist-alarm.vercel.app
User information
Getting Started
Login: Connect your Yoto account via OAuth to access your devices and playlists
Device Connection: Your Yoto devices will auto-detect and connect via MQTT for real-time control
Take the Tour: Click the "?" icon for a guided walkthrough of key features
Setting Up Alarms
Browse Playlists: Navigate to the "Playlists" tab to see your Yoto content library
Set Alarm: Click "Set Alarm" on any playlist card to configure wake-up or bedtime alarms
Upload to Cloud: Visit the "Alarms" tab and upload your configured alarms for background scheduling
Manage Multiple: Create up to 10 alarms across all your devices - perfect for families with multiple rooms
Real-Time Device Control
Volume Control: Use the visual gauge for precise volume adjustment
Live Status: Monitor battery, WiFi strength, and device health in real-time
Instant Playback: Control play/pause, skip tracks, and manage sleep timers directly from the app
Pro Tips
Background Operation: Uploaded cloud alarms run automatically without keeping the app ope
Multi-Device: Distribute your 10 alarms however you want across devices (2 per device, or mix as needed)
Mobile Optimized: Collapsible panels and touch-friendly controls make mobile use seamless
Device Status: Expand device status panels for detailed diagnostics and system information
Technical information
Next.js 15 with TypeScript and Material-UI
Real-time MQTT communication with Yoto devices
Flask backend with PostgreSQL database
OAuth integration for secure Yoto account access
Railway cloud deployment with automatic database migrations for securely housing the cloud alarms
Railway cron jobs for running the scheduled alarms
Data storage
Data Collected by Our App
Alarm Settings: Custom alarm configurations (time, playlist, device assignment, alarm type)
User Preferences: Volume levels, device selections, alarm scheduling data
Storage Locations
Server-Side Storage (Railway PostgreSQL Database):
User alarm configurations (alarm times, associated playlists, device assignments)
User account mappings (linking generated account IDs to alarm data - generated accounts use a portion of the JWT to ensure uniqueness with no actual usernames stored)
Authentication tokens (temporarily stored for API access)
Client-Side Storage (Browser):
Session data (temporary authentication state)
Device connection status (real-time MQTT connection states)
UI preferences (accordion expansion states, selected tabs)
No Permanent Local Storage:
No user data is permanently stored in browser local storage
All persistent data is stored server-side in our PostgreSQL database
Third-Party Data:
Yoto API: We access but do not store Yoto's playlist, device, and account data
MQTT Broker: Real-time device communication (no data retention)
Data Security
All data is transmitted over HTTPS/WSS encrypted connections. User authentication uses OAuth 2.0 through Yoto's official API. No sensitive personal information beyond alarm preferences is collected or stored.
Data Accessed from Yoto API:
User Account Information: Username, account ID, authentication tokens
Device Information: Device names, device IDs, connection status, firmware versions
Playlist Data: Playlist names, content metadata, card information
Device Status: Battery levels, volume settings, WiFi strength, temperature readings
Alarm Configurations: User-created alarm settings, times, playlist associations