A modern, responsive web interface for the go-podcast-sponsor-block project. Convert YouTube playlists into ad-free podcast RSS feeds with a beautiful, mobile-friendly UI.
β¨ AI-Powered Development: This project was rapidly developed using AI assistance with Claude Code, showcasing modern full-stack development practices and demonstrating the potential of AI-human collaboration in software engineering.
- π¨ Modern Dark UI - Clean, podcast-themed interface with professional design
- π± Mobile-First - Responsive design that works perfectly on all devices
- π Persistent Storage - Feed history shared across all users using Docker volumes
- πΌοΈ Smart Image Handling - Automatic podcast artwork fetching with CORS proxy
- π One-Click Copy - Instantly copy RSS URLs to clipboard
- π§ Zero Configuration - Deploy with a single
docker-compose up
command - π Fast & Lightweight - Optimiz 8000 ed nginx + Node.js architecture
- π¦ Pre-built Images - Available on Docker Hub
The main PodWeb interface showing the feed creation form and persistent feed history with podcast artwork
Generated RSS feed URL with copy-to-clipboard functionality
The screenshots showcase:
- Dark theme interface with red accent colors
- Real podcast artwork automatically fetched from YouTube
- Persistent feed history showing popular podcasts (Joe Rogan, Bill Burr, etc.)
- Clean, modern design optimized for both desktop and mobile
- One-click copy functionality for RSS URLs
- Simple Web Interface: Easy-to-use form for creating RSS feeds from YouTube playlists
- Mobile-Friendly: Responsive design that works on all devices
- Shared Feed History: Server-side storage allows all users to see created feeds
- Persistent Storage: Feed history survives container restarts using Docker volumes
- One-Click Copy: Copy RSS feed URLs to clipboard with a single click
- Docker Deployment: Ready-to-deploy with Docker Compose
- Optional Authentication: Secure feeds with optional token authentication
- Docker and Docker Compose
- Google API Key for YouTube Data API (Get one here)
-
Download the configuration
# Option 1: Clone the repository for the docker-compose.yml git clone https://github.com/YOUR_USERNAME/podweb.git cd podweb # Option 2: Download just the docker-compose.yml wget https://raw.githubusercontent.com/YOUR_USERNAME/podweb/main/docker-compose.yml wget https://raw.githubusercontent.com/YOUR_USERNAME/podweb/main/.env.example
-
Configure environment
cp .env.example .env # Edit .env and add your Google API key: # GOOGLE_API_KEY=your_google_api_key_here
-
Deploy with Docker
docker-compose up -d
-
Access PodWeb Open your browser to
http://localhost:3000
That's it! π PodWeb will automatically pull the latest image from Docker Hub and start running.
If you prefer to build the image yourself:
- Clone and build
git clone https://github.com/YOUR_USERNAME/podweb.git cd podweb docker-compose build podweb docker-compose up -d
Variable | Required | Description |
---|---|---|
GOOGLE_API_KEY |
Yes | Google API key for YouTube Data API |
FEED_TOKEN |
No | Optional authentication token for RSS feeds |
BASE_URL |
No | Base URL for the application (auto-detected if not set) |
- Open the Web Interface: Navigate to your deployment URL
- Enter YouTube Playlist URL: Paste a YouTube playlist URL into the form
- Generate Feed: Click "Generate RSS Feed" to create your podcast feed
- Copy URL: Use the copy button to copy the RSS feed URL to your clipboard
- Add to Podcast App: Paste the RSS URL into your favorite podcast application
To find a YouTube playlist ID:
- Navigate to the YouTube channel
- Click on the "Playlists" tab
- Click on the playlist you want to convert
- The URL will look like:
https://www.youtube.com/playlist?list=PLbh0Jamvptwfp_qc439PLuyKJ-tWUt222
- The playlist ID is everything after
list=
:PLbh0Jamvptwfp_qc439PLuyKJ-tWUt222
Generated RSS feeds follow this format:
https://your-domain.com/rss/PLAYLIST_ID
With optional token authentication:
https://your-domain.com/rss/PLAYLIST_ID?token=YOUR_TOKEN
- Go 1.21 or later
- Node.js (for development tools, optional)
go run ./cmd/app
The application will start on port 8080.
go build -o podcast-sponsor-block ./cmd/app
GET /
- Web interfaceGET /static/*
- Static web assetsGET /feeds-api/feeds
- Get all saved feedsPOST /feeds-api/feeds
- Save a new feedDELETE /feeds-api/feeds/:id
- Remove a saved feed
GET /rss/:playlistId
- Generate RSS feed from YouTube playlistGET /channel/:channelId
- Generate RSS feed from YouTube channelGET /media/:videoId
- Serve processed audio files
We welcome contributions! See CONTRIBUTING.md for guidelines.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is built on top of the excellent work by:
- Author: ikoyhn
- Purpose: Core podcast processing engine that removes sponsor segments and generates RSS feeds
- License: Please refer to the original project for licensing information
PodWeb serves as a modern web frontend for this powerful backend service, making it accessible to users who prefer a graphical interface over command-line tools.
- Developed with AI assistance using Claude Code by Anthropic
- Demonstrates rapid full-stack development through human-AI collaboration
This project is licensed under the MIT License - see the LICENSE file for details.
Note: This frontend is licensed under MIT, but the core functionality depends on go-podcast-sponsor-block. Please respect the licensing terms of both projects.
- Frontend Issues: Open an issue in this repository
- Backend/Processing Issues: Refer to the go-podcast-sponsor-block project
- 6B51 Feature Requests: We welcome suggestions for UI/UX improvements!
This tool is for educational and personal use. Users are responsible for complying with YouTube's Terms of Service and applicable copyright laws. The developers are not responsible for any misuse of this software.