PigeonPod: YouTube & Bilibili Podcast Downloader
Comprehensive Overview of PigeonPod: A Self-Hosted YouTube & Bilibili Podcast Downloader
Introduction
PigeonPod is an open-source self-hosted application designed to streamline the process of downloading and managing content from YouTube, Bilibili, and other video platforms. Whether you are a podcast enthusiast looking for a reliable way to download videos or a developer interested in building a customizable media management system, PigeonPod offers a robust solution with advanced features tailored for efficient content consumption.
This detailed description explores the core functionalities of PigeonPod, its deployment options, storage configurations, technical architecture, and user-friendly interface. We will also examine how it integrates with popular podcasting tools and provides an optimized experience for users who prefer self-hosted solutions over third-party services.
Visual Overview: Brand Identity & Interface Design
The application features a sleek and modern design that ensures ease of navigation across different platforms. The logo, displayed prominently at the top left corner, is stylized with a clean aesthetic that aligns well with its purpose as a podcasting tool:

The interface supports both dark and light themes, enhancing usability for users who prefer either mode.
Homepage Interface
The homepage provides an intuitive dashboard where users can manage their subscriptions, monitor download statuses, and preview feeds. The responsive layout ensures compatibility across various devices, including desktops, tablets, and smartphones.

Channel List & Feed Details
Users can browse through their subscribed channels or manually add new ones. The feed detail page allows users to preview episode titles, descriptions, and metadata before downloading.

Core Features: Smart Subscription & Preview
Smart Subscription & Auto-Detection
One of the standout features of PigeonPod is its ability to automatically detect whether a provided URL belongs to YouTube, Bilibili, or another platform. Users can paste any channel or playlist link directly into the application, and PigeonPod will generate an RSS feed that works seamlessly across all podcasting clients.
This feature eliminates the need for manual configuration, making it easier for users to manage multiple subscriptions efficiently.
Secure RSS Generation
PigeonPod generates standard RSS feeds with API-key protection. This ensures that downloaded content remains secure and accessible only through authorized applications. Users can export these RSS links as OPML files for easy migration between podcast clients like Spotify, Apple Podcasts, or custom-built apps.
Auto Sync & Historical Backfill
The application supports periodic background syncing of new uploads while maintaining historical data. Users can configure initial episode downloads and perform one-click backfills to download past content efficiently. This feature is particularly useful for users who want to catch up on older episodes without manually searching through each video.
Flexible Audio/Video Output
PigeonPod allows users to choose between audio-only (AAC) or full video downloads with customizable quality settings, including resolution and encoding options. Users can also embed metadata such as chapters and artwork directly into downloaded files, ensuring a polished listening experience.
Advanced Features for Podcast Enthusiasts
Restricted Content Support
PigeonPod supports accessing age-restricted and members-only content by utilizing YouTube Data API keys and uploaded cookies. This ensures that users can download videos that are typically inaccessible through standard RSS feeds, providing a more comprehensive library of available content.
Historical Episodes Batch Download
The application is designed with efficiency in mind for bulk downloads. Users can search, filter, and select episodes or entire playlists before submitting them for download. The one-click submission feature simplifies the process, making it ideal for users who want to download large catalogs of videos at once.
Download Dashboard & Bulk Actions
A real-time dashboard keeps track of pending, downloading, completed, and failed tasks. Detailed error logs provide insights into any issues that may arise during downloads, allowing users to troubleshoot problems effectively. Additionally, bulk actions enable users to cancel, delete, or retry multiple downloads simultaneously.
Per-Feed Filters & Retention
Users can apply filters based on episode titles, descriptions, minimum duration, and other criteria. This feature ensures that only relevant content is downloaded while preventing unnecessary clutter in the media library. Users can also set per-feed sync limits to manage storage efficiently.
Delayed Auto Download for New Episodes
PigeonPod introduces a unique feature called delayed auto-download. By configuring specific time windows, users can improve download success rates for newly published videos by avoiding conflicts with sponsor blocks and other restrictions. This ensures that new content is downloaded reliably without manual intervention.
YouTube API Usage Insights
The application provides detailed insights into YouTube API quota usage, helping users plan sync jobs effectively and avoid unexpected interruptions due to quota limits.
Customizable Feeds & Player
PigeonPod allows users to customize feed titles and cover art for each subscription. The built-in web player enables quick audio or video playback without needing external software, providing a seamless experience within the application itself.
OPML Subscription Export
Users can export all their subscriptions as an OPML file, which is a standard format for podcast clients. This feature facilitates easy migration between different platforms and ensures that users’ subscriptions remain intact when switching to new devices or applications.
Episode Management & Control
The infinite-scrolling episode list allows users to browse through downloaded content effortlessly. Users can manually download, retry, cancel, or delete episodes directly from the interface, providing full control over their media library.
In-App yt-dlp Updates
PigeonPod integrates with the popular yt-dlp tool, allowing users to upgrade the built-in runtime with one click. This ensures that extraction and download compatibility remain current, preventing issues related to outdated versions of the underlying tools.
Advanced yt-dlp Arguments
For advanced users, PigeonPod supports customizable yt-dlp arguments. Users can add specific commands to fine-tune download behavior according to their preferences, such as adjusting encoding settings or handling special cases in video processing.
Multilingual Responsive UI
The application features a fully localized interface with support for multiple languages, including English, Chinese, Spanish, Portuguese, Japanese, French, German, and Korean. The responsive layout ensures that the interface adapts seamlessly to different screen sizes, providing an optimal user experience across all devices.
Podcasting 2.0 Chapters Support
PigeonPod generates standard chapters.json files for each episode, enabling more podcast clients to display rich chapter navigation. This feature enhances the overall listening experience by allowing users to jump directly to specific sections within a video or audio file.
Deployment Options: Self-Hosting Made Easy
Using Docker Compose (Recommended)
PigeonPod is designed for easy deployment using Docker and Docker Compose, making it accessible even to users who are not familiar with command-line tools. Here’s how to set up the application:
- Prerequisites:
- Install Docker and Docker Compose on your machine.
- Configuration:
Modify environment variables in the
docker-compose.ymlfile according to your needs, such as setting the database path or storage configuration. - Run the Service:
docker-compose up -d
- Access the Application:
Open a web browser and visit
http://localhost:8834. Use the default credentials:
- Username:
root - Password:
Root@123
Running with JAR
For users who prefer running the application directly from a .jar file, follow these steps:
- Prerequisites:
- Install Java 17+ and
yt-dlp.
- Download the Latest Release:
Visit the Releases page to download the latest
.jarfile. - Create a Data Directory:
mkdir -p data
- Run the Application:
java -jar -Dspring.datasource.url=jdbc:sqlite:/path/to/your/pigeon-pod.db pigeon-pod-x.x.x.jar
- Access the Application:
Open a web browser and visit
http://localhost:8080with default credentials:
- Username:
root - Password:
Root@123
Storage Configuration
PigeonPod supports two storage modes:
Local Storage
- Pros: Easy setup, no external dependencies.
- Cons: Uses local disk space, which can become a limitation for large media libraries.
S3 Storage Mode
- Supports MinIO, Cloudflare R2, AWS S3, and other S3-compatible services.
- Provides better scalability and is ideal for cloud-based deployments.
- Users must manually migrate historical files when switching storage modes.
Documentation & Technical Support
PigeonPod provides comprehensive documentation to guide users through setup processes:
Tech Stack: Backend & Frontend
Backend
PigeonPod is built using a robust tech stack that ensures reliability and performance:
- Java 17: Core programming language.
- Spring Boot 3.5: Application framework for building scalable backend services.
- MyBatis-Plus 3.5: ORM framework for efficient database interactions.
- Sa-Token: Authentication framework for secure user management.
- SQLite: Lightweight database for storing application data.
- Flyway: Database migration tool to manage schema changes.
- YouTube Data API v3: For retrieving video metadata and content.
- yt-dlp: Video download tool integrated into the application.
Frontend
The frontend is developed using modern web technologies:
- JavaScript (ES2024): Core programming language for dynamic interactions.
- React 19: Application framework for building interactive user interfaces.
- Vite 7: Build tool for optimizing performance and reducing bundle size.
- Mantine 8: UI component library for creating responsive and visually appealing elements.
- i18next: Internationalization support for multilingual users.
- Axios: HTTP client for seamless API communication.
Development Guide
Environment Requirements
Before setting up the development environment, ensure you have:
- Java 17+
- Node.js 22+
- Maven 3.9+
- SQLite
yt-dlp
Local Development Steps
- Clone the Project:
git clone https://github.com/aizhimou/PigeonPod.git
cd PigeonPod
- Configure Database: Create a data directory:
mkdir -p data/audio
- Set Up YouTube API:
- Create a project in Google Cloud Console.
- Enable the YouTube Data API v3.
- Generate an API key and configure it in user settings.
- Start Backend:
cd backend
mvn spring-boot:run
- Start Frontend (in a new terminal):
cd frontend
npm install
npm run dev
- Access the Application:
- Frontend dev server:
http://localhost:5173 - Backend API:
http://localhost:8080
Development Notes
- Ensure
yt-dlpis installed and available in your command line. - Configure a valid YouTube API key.
- Set up an audio storage directory with sufficient disk space.
- Regularly clean up old audio files to manage storage efficiently.
Star History & Community Engagement
PigeonPod has gained significant traction among developers and users, as indicated by its growing star history on GitHub. Users are encouraged to contribute to the project by forking it, submitting bug reports, or suggesting new features. The open-source nature of PigeonPod fosters collaboration within the community, ensuring continuous improvement and innovation.
Conclusion: Why Choose PigeonPod?
PigeonPod stands out as a versatile self-hosted solution for managing YouTube and Bilibili content. Its advanced features—such as smart subscription detection, secure RSS generation, historical backfill, and customizable download options—make it an ideal choice for podcast enthusiasts who prioritize control over their media libraries.
Whether you are looking to download videos efficiently or build a robust backend for managing podcasts, PigeonPod provides the tools needed to achieve your goals. By supporting multiple languages and deployment methods, it caters to a wide range of users, ensuring accessibility and flexibility in every aspect of its functionality.
For those who value privacy and self-sufficiency, PigeonPod offers a reliable alternative to third-party services, making it an excellent choice for anyone looking to take full control of their media consumption experience.
Enjoying this project?
Discover more amazing open-source projects on TechLogHub. We curate the best developer tools and projects.
Repository:https://github.com/aizhimou/pigeon-pod
GitHub - aizhimou/pigeon-pod: PigeonPod: YouTube & Bilibili Podcast Downloader
PigeonPod is an open-source self-hosted application designed to streamline the process of downloading and managing content from YouTube, Bilibili, and other vid...
github - aizhimou/pigeon-pod