A powerful command-line application for exploring Spotify podcasts and shows. Browse episodes, search shows, and manage your podcast discovery experience with an intuitive interactive interface.
- π Explore Spotify Shows: Get detailed information about any podcast or show
- πΊ Browse Episodes: View complete episode catalogs with smart pagination
- β Popular Shows: Quick access to curated popular podcasts
- π― Interactive CLI: Beautiful, user-friendly command-line interface
- π Fast Performance: Optimized with caching and bulk operations
- π Direct Integration: Open episodes directly in Spotify
Interactive CLI interface showing show browsing and episode exploration
- Node.js 14.0.0 or higher (Download here)
- Spotify Developer Account (free - Sign up here)
-
Clone and install:
git clone <repository-url> cd spotify-episode-viewer-cli npm install
-
Get Spotify API credentials:
- Go to Spotify Developer Dashboard
- Create a new app or use existing one
- Copy your Client ID and Client Secret
-
Configure the app:
# Copy the example environment file cp .env.example .env # Edit .env and add your credentials: # CLIENT_ID=your_spotify_client_id_here # CLIENT_SECRET=your_spotify_client_secret_here
-
Start the app:
npm start
That's it! The interactive CLI will launch automatically.
Launch the beautiful interactive interface:
npm startMain Menu Options:
- π΅ Show Details - Get comprehensive show information
- πΊ Browse Episodes - View all episodes with pagination
- β Popular Shows - Explore curated popular podcasts
- π Search Shows - Find shows by name or keyword
- βοΈ Configuration - View current settings
- π₯ Health Check - Diagnose connection issues
- Colorful output with syntax highlighting
- Smart tables for organized data display
- Loading spinners during API calls
- Input validation with helpful error messages
- Cross-platform support (Windows, macOS, Linux)
- Smart caching for faster episode lookups
- Bulk operations for improved speed
- Concurrent processing with rate limiting
- Offline capabilities with cached data
# Launch the interactive CLI
npm start
# Follow the menu prompts to:
# 1. Browse popular shows
# 2. Search for specific shows
# 3. View episode details
# 4. Open episodes in Spotify# Show help
node src/app.js help
# Get details for a specific show
node src/app.js details 11ktWYpzznMCpvGtXsiYxE
# Browse episodes
node src/app.js episodes 11ktWYpzznMCpvGtXsiYxE
# Show summary
node src/app.js summary 11ktWYpzznMCpvGtXsiYxE11ktWYpzznMCpvGtXsiYxE- Conan O'Brien Needs a Friend4rOoJ6Egrf8K2IrywzwOMk- The Joe Rogan Experience2MAi0BvDc6GTFvKFPXnkCL- This American Life2hmkzUtix0qTqvtpPcMzEL- Radiolab
| Variable | Description | Required | Default |
|---|---|---|---|
CLIENT_ID |
Your Spotify Client ID | β Yes | - |
CLIENT_SECRET |
Your Spotify Client Secret | β Yes | - |
DEFAULT_SHOW_ID |
Default show to display | No | 11ktWYpzznMCpvGtXsiYxE |
LOG_LEVEL |
Logging level (debug, info, warn, error) | No | info |
- Visit Spotify Developer Dashboard
- Click "Create an App"
- Fill in app name and description
- Copy the Client ID and Client Secret
- Add them to your
.envfile
β "Missing required configuration"
- Make sure you've created a
.envfile with your Spotify credentials - Check that
CLIENT_IDandCLIENT_SECRETare set correctly
β "Unable to connect to Spotify API"
- Check your internet connection
- Verify your Spotify credentials are correct
- Try running the health check: select "π₯ Run Diagnostics" from the main menu
β "Invalid Show ID format"
- Show IDs should be exactly 22 alphanumeric characters
- Copy IDs from Spotify URLs:
https://open.spotify.com/show/[SHOW_ID] - Use the Popular Shows menu to find valid IDs
β "Rate limit exceeded"
- Wait a few seconds and try again
- The app automatically handles rate limiting
- Run diagnostics: Use the "π₯ Run Diagnostics" option in the main menu
- Check configuration: Use the "βοΈ View Configuration" option
- View logs: Set
LOG_LEVEL=debugin your.envfile for detailed logging
# Run all tests
npm test
# Run with coverage
npm run test:coverage
# Run in watch mode
npm run test:watchnpm start # Launch interactive CLI
npm run cli # Explicit CLI mode
npm test # Run test suite
npm run quality # Code quality checks
npm run migrate:favorites # Migrate favorites to SQLitesrc/
βββ cli/ # Interactive CLI interface
βββ services/ # Business logic services
βββ clients/ # Spotify API client
βββ config/ # Configuration management
βββ errors/ # Error handling
βββ interfaces/ # TypeScript-style interfaces
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes following the existing code style
- Add tests for new functionality
- Run tests:
npm test - Submit a pull request
This project is licensed under the ISC License.
- π Fast Setup: Get running in under 5 minutes
- π¨ Beautiful Interface: Professional CLI with colors and formatting
- β‘ High Performance: Optimized for speed with smart caching
- π Reliable: Comprehensive error handling and recovery
- π§ Extensible: Clean architecture following SOLID principles
- π± Cross-Platform: Works on Windows, macOS, and Linux
- π§ͺ Well-Tested: 129+ tests ensuring reliability
Ready to explore Spotify shows? Run npm start and dive in! π§
