Intelligent Podcast & Youtube Transcription & Understanding AI Agent
Project description
๐ง 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!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file podlens-1.2.19.tar.gz.
File metadata
- Download URL: podlens-1.2.19.tar.gz
- Upload date:
- Size: 11.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
55d01b8404919ca861413ed9dec48f445e558f5e6ff4534316d75fdfceecf365
|
|
| MD5 |
00a159243b98c01b339a7fee2bff6a53
|
|
| BLAKE2b-256 |
b0187f1387d4f5e3027b4fa1a2209e9c631dec245549f6ca9fe3cfc7d21a5073
|
File details
Details for the file podlens-1.2.19-py3-none-any.whl.
File metadata
- Download URL: podlens-1.2.19-py3-none-any.whl
- Upload date:
- Size: 161.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0384999f13496fc630a4f37d19556271916c7ac461541027eb0017a5f591c0c9
|
|
| MD5 |
352f296f60c1db7bf1f2101c827c257c
|
|
| BLAKE2b-256 |
93ea9d9daa2bc12ac5491555fd276abadac4e42dc7686fa21512be656837669b
|