🎧 PodLens - Free Podwise: Podcast & Youtube Transcription & Summary AI Agent
🧠 For knowledge-seekers who want to learn from audio content more effectively.
🤖 Now with 24x7 automation service & 📧 smart email digest & 📒 sync to Notion!
A fast & cost-free & AI-powered tool that:
- 🎙️ transcribes audio content from Apple Podcast and YouTube platforms
- 📝 summarizes
- 📊 visualizes
- 🌏 features bilingual Chinese/English interface
中文版 README | English README
✨ Key Features
- 🤖 24x7 Intelligent Automation: Set-and-forget service monitors your favorite podcasts and YouTube channels, automatically processing new episodes hourly - autopodlens
- 📧 Smart Email Digest: Daily automated email summaries with AI-generated insights and processed content overview
- 📝 Sync to Notion: Automatically sync processed content to Notion with your own Notion page and token
- 🎯 Interactive Manual Mode: On-demand processing with intuitive command-line interface for immediate transcription and analysis of specific episodes - podlens
- ⚡ Ultra-Fast Smart Transcription: Multiple AI-powered methods (Groq API for speed, MLX Whisper for large files) with intelligent fallback chain
- 🍎 Apple Podcast & YouTube Integration: Seamless content extraction from both major platforms with smart episode detection
- 🧠 AI-Powered Analysis: Generate intelligent summaries and insights using Google Gemini AI with structured topic analysis
- 🎨 Interactive Visual Stories: Transform content into beautiful, responsive HTML visualizations with data charts and modern UI
- 🌍 Bilingual Support: Full Chinese/English interface with smart language detection and switching
- 🗂️ Smart Organization: Episode-based folder structure with automatic file management and duplicate detection
📦 Installation
pip install podlens
🔧 Configuration
1. Create .env Configuration File
Create a .env file in your working directory:
# .env file content
GROQ_API_KEY=your_groq_api_key_here
GEMINI_API_KEY=your_gemini_api_key_here
MODEL=gemini-2.5-flash-lite
2. Get API Keys & Configure Model
Groq API (Recommended - Ultra-fast transcription):
- Visit: https://console.groq.com/
- Register and get free API key
- Benefits: Extremely fast Whisper large-V3 processing, generous free quota
Gemini API (AI Summary):
- Visit: https://aistudio.google.com/app/apikey
- Get free API key
- Used for generating intelligent summaries
Gemini Model (Required - AI Model Configuration):
- Must be configured in your
.envfile - Available models:
gemini-2.5-flash-lite(Recommended - Fast and cost-effective)gemini-1.5-pro(More powerful, higher quality)gemini-2.5-flash-preview-05-20(Preview version)
- The tool will display which model is being used on startup
- If not configured, the tool will show an error and exit
Notion API (Sync to Notion):
- Visit: https://www.notion.so/my-integrations
- Click "+ New integration"
- Fill in the information:
- Name:
Markdown Uploader(or any name) - Workspace: Select your workspace
- Type: Internal integration
- Name:
- Click "Submit"
- Get Notion token: Copy the generated "Internal Integration Secret" (starts with
secret_) - Get Notion page id: Copy the page id after
pagename-in the URL of your Notion page: https://www.notion.so/pagename-
🚀 Usage
Interactive Mode
# English version
podlens
# Chinese version
pod
Automation Service (NEW!)
# English version 24x7 automation service
autopodlens
# Chinese version 24x7 automation service
autopod
# Check automation status
autopodlens --status # English version
autopod --status # Chinese version
Email Service (NEW!)
# Email notification setup
autopod(or autopodlens) --email your@email.com --time 08:00,18:00
# Email time setup
autopod(or autopodlens) --time 08:00,18:00
# Check email service status
autopod(or autopodlens) --email-status
# Sync email configuration
autopod(or autopodlens) --email-sync
# Disable email service
autopod(or autopodlens) --email-disable
Notion Sync Service (NEW!)
# Notion token and page id setup
autopod(or autopodlens) --notiontoken <your_notion_token> --notionpage <your_notion_page_id>
# Upload to Notion
autopod(or autopodlens) --notion
You can also change the email service & Notion sync settings in the .podlens/setting file, then use '--email-sync' to sync the settings.
Configuration Files (Auto-Generated)
my_pod.md- Configure monitored podcasts (created automatically)my_tube.md- Configure monitored YouTube channels (created automatically).podlens/setting- Automation frequency and monitoring settings (created automatically).podlens/status.json- Service status and processed episodes tracking (created automatically)
When you first run the automation service, PodLens will automatically create configuration files:
.podlens/setting - Automation frequency and monitoring settings (created automatically)
# PodLens Automation Settings
# Run frequency (hours), supports decimals, e.g. 0.5 means every 30 minutes
run_frequency = 1.0
# Monitor Apple Podcast (my_pod.md)
monitor_podcast = true
# Monitor YouTube (my_tube.md)
monitor_youtube = true
# Email notification settings
email_function = true
user_email = example@gmail.com
notification_times = 08:00,18:00
my_pod.md (auto-generated with examples):
# PodLens Podcast Subscription List
# This file manages the podcast channels you want to automatically process.
## How to Use
# - One podcast name per line
# - Supports podcast names searchable on Apple Podcast
# - Lines starting with `#` are comments and will be ignored
# - Empty lines will also be ignored
## Example Podcasts
thoughts on the market
# or: thoughts on the market - morgan stanley
## Business Podcasts
## Tech Podcasts
my_tube.md (auto-generated with examples):
# YouTube Channel Subscription List
# This file manages the YouTube channels you want to automatically process.
## How to Use
# - One channel name per line (no @ symbol needed)
# - Channel name is the part after @ in YouTube URL
# - Example: https://www.youtube.com/@Bloomberg_Live/videos → fill in Bloomberg_Live
# - Lines starting with `#` are comments and will be ignored
# - Empty lines will also be ignored
## Example Channels
Bloomberg_Live
## Business Channels
## Tech Channels
Simply edit these files to add or remove your preferred podcasts and YouTube channels.
Interactive Interface:
🎧🎥 Media Transcription & Summary Tool
==================================================
Supports Apple Podcast and YouTube platforms
==================================================
📡 Please select information source:
1. Apple Podcast
2. YouTube
0. Exit
Please enter your choice (1/2/0): 1
🎧 You selected Apple Podcast
Please enter the podcast channel name: thoughts on the market
📥 Downloading: Episode Title...
⚡️ Ultra-fast transcription...
🧠 Summarizing...
🎨 Visual Story Generation?(y/n):
Automation Service Example
# Start the automation service
$ autopodlens
🤖 Starting PodLens 24x7 Intelligent Automation Service
⏰ Running frequency: hourly
🎧 Monitoring podcasts: 1
📺 Monitoring YouTube channels: 1
Press Ctrl+Z to stop service
⏰ Starting hourly check
🔍 Checking podcast: thoughts on the market
📥 Processing new episode: Standing by Our Outlook...
✅ thoughts on the market processing complete
🔍 Checking YouTube channel: @Bloomberg_Live
📥 Processing new video: Jennifer Doudna on Future of Gene Editing \u0026 I...
✅ @Bloomberg_Live processing complete
✅ Check complete - Podcasts: 1/1, YouTube: 1/1
Notion Sync Service Example
📒 Writing to your Notion...
✅ Jennifer_Doudna_on_Future_of_G...: 100%|██████████████████████████████████| 2/2 [00:29<00:00, 14.52s/files]
✅ Import successful!
📋 Workflow Example
Apple Podcast Workflow
- Search Channel: Enter podcast name (e.g., "thoughts on the market")
- Select Channel: Choose from search results
- Browse Episodes: View recent episodes
- Select Episodes: Choose episodes for processing
- Auto Processing: Automatic download, transcription and AI summary
- Create Visualization: Optional interactive HTML stories with modern UI and data visualizations
YouTube Workflow
- Input Source:
- Channel name (e.g., "Bloomberg_Live")
- Direct video URL
- Transcript text file
- Select Episodes: Choose videos to process
- Auto Processing: Automatic transcript extraction and AI summary
- Create Visualization: Optional interactive HTML stories with modern UI and data visualizations
Automation Workflow (NEW!)
- Launch Service: Run
autopodlens(English) orautopod(Chinese) - configuration files auto-created - Configure: Edit the auto-generated
my_pod.mdandmy_tube.mdwith your subscriptions - 24x7 Monitoring: Service checks for new content every hour
- Auto Processing: New episodes automatically transcribed and summarized
- Smart Deduplication: Already processed content is skipped automatically
📁 Output Structure
your-project/
├── outputs/ # Episode-based organized content
│ └── [Channel Name]/
│ └── [Date]/
│ └── [Episode Title]/
│ ├── audio.mp3 # Downloaded audio file (will be deleted after processing)
│ ├── Transcript_[Details].md # Transcription
│ ├── Summary_[Details].md # AI-generated summary
│ └── Visual_[Details].html # Interactive visualization
├── .podlens/ # Automation configuration
│ ├── setting # Service frequency and monitoring settings
│ └── status.json # Processed episodes tracking
├── my_pod.md # Monitored podcasts configuration
├── my_tube.md # Monitored YouTube channels configuration
└── .env # Your API keys
🛠️ Advanced Features
Episode-based File Organization
- Dedicated Folders: Each episode gets its own folder for clean organization
- Consistent Structure: All related files (audio, transcript, summary, visualization) in one place
24x7 Automation Service
- Smart Monitoring: Automatic tracking of podcasts and YouTube channels via
my_pod.mdandmy_tube.mdconfiguration files - Intelligent Deduplication: Already processed episodes are automatically skipped based on
.podlens/status.jsontracking - Hourly Processing: Service checks for new content every hour and processes automatically
- Channel Format: YouTube channels use simple names (e.g.,
Bloomberg_Livefor@Bloomberg_Live) - Episode Organization: Date-based folder structure with detailed file naming for easy navigation
- Status Tracking: View service status and processing history with
--statusflag
Smart Email Digest Service
- Daily Summaries: Automated email reports with AI-generated insights
- Flexible Scheduling: Multiple daily notification times (e.g., 08:00, 18:00)
- Rich HTML Format: Beautiful email layout with channel groupings and key insights
- Intelligent Content: AI-powered daily digest highlighting important information
- Easy Management: Simple commands for setup, status check, and configuration
Notion Sync Service
- Automatic Sync: Automatically sync processed content to Notion with your own Notion page and token
- Smart Deduplication: Already processed episodes are automatically skipped based on
.podlens/status.jsontracking
Smart Transcription Logic
- Small files (<25MB): Groq API ultra-fast transcription
- Large files (>25MB): Automatic compression + fallback to MLX Whisper
- Fallback chain: Groq → MLX Whisper → Error handling
AI Summary Features
- Sequential analysis: Topic outline in order
- Key insights: Important takeaways and quotes
- Technical terms: Jargon explanation
- Critical thinking: First-principles analysis
Interactive Visualization Features
- Modern Web Design: Beautiful, responsive HTML pages using Tailwind CSS
- Data Visualizations: Automatic charts and graphs for numerical content (percentages, metrics, comparisons)
- Interactive Elements: Smooth animations, collapsible sections, and real-time search powered by Alpine.js
- Professional Styling: Glassmorphism effects, gradient accents, and Apple-inspired clean design
- Content Intelligence: AI automatically identifies and visualizes key data points from transcripts and summaries
- Dual Input Support: Generate visualizations from either transcripts or summaries
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgements
This project stands on the shoulders of giants. We are deeply grateful to the following open source projects, technologies, and communities that made PodLens possible:
Core AI Technologies
- OpenAI Whisper - The foundational automatic speech recognition model that revolutionized audio transcription
- MLX Whisper - Apple's MLX-optimized implementation enabling fast local transcription on Apple Silicon
- Groq - Ultra-fast AI inference platform providing lightning-speed Whisper transcription via API
- Google Gemini - Advanced AI model powering our intelligent summarization features
Media Processing & Extraction
- yt-dlp - Powerful YouTube video/audio downloader, successor to youtube-dl
- youtube-transcript-api - Elegant Python library for extracting YouTube video transcripts
🌟 Star this repo if you find it helpful!
Release files for podlens 1.2.23
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| podlens-1.2.23.tar.gz | 11.8 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| podlens-1.2.23-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.9 MB
Release files / podlens-1.2.23.tar.gz
| Download URL | podlens-1.2.23.tar.gz |
|---|---|
| Size | 11.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
aa948d01c2bea22077ff45a480b066a1caab92ed203654d50d3d5c850d103857
|
|
BLAKE2b-256 checksum How to use checksums |
810f7a81cce61cc0c7897c08cbd3b784e9297fe2f949f671ef98b35007d1c95f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.3
|
Release files / podlens-1.2.23-py3-none-any.whl
| Download URL | podlens-1.2.23-py3-none-any.whl |
|---|---|
| Size | 164.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
eda27435fe2dd3edd559d71c79ab8dea6eea4910773342855f12b9d0d8ef065c
|
|
BLAKE2b-256 checksum How to use checksums |
29760f4fc442430a5b7f9712269732a33df3f635d0f9d48d0a5ae0e52ce24aa4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.3
|