# π§ 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](README_zh.md) | **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
```bash
pip install podlens
```
## π§ Configuration
### 1. Create .env Configuration File
Create a `.env` file in your working directory:
```bash
# .env file content
GROQ_API_KEY=your_groq_api_key_here
GEMINI_API_KEY=your_gemini_api_key_here
```
### 2. Get API Keys
**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
**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
- 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-<your-page-id>
## π Usage
### Interactive Mode
```bash
# English version
podlens
# Chinese version
pod
```
### Automation Service (NEW!)
```bash
# 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!)
```bash
# 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!)
```bash
# 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)
```markdown
# 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):
```markdown
# 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):
```markdown
# 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
```bash
# 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
```bash
π 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
1. **Search Channel**: Enter podcast name (e.g., "thoughts on the market")
2. **Select Channel**: Choose from search results
3. **Browse Episodes**: View recent episodes
4. **Select Episodes**: Choose episodes for processing
5. **Auto Processing**: Automatic download, transcription and AI summary
6. **Create Visualization**: Optional interactive HTML stories with modern UI and data visualizations
### YouTube Workflow
1. **Input Source**:
- Channel name (e.g., "Bloomberg_Live")
- Direct video URL
- Transcript text file
2. **Select Episodes**: Choose videos to process
3. **Auto Processing**: Automatic transcript extraction and AI summary
4. **Create Visualization**: Optional interactive HTML stories with modern UI and data visualizations
### Automation Workflow (NEW!)
1. **Launch Service**: Run `autopodlens` (English) or `autopod` (Chinese) - configuration files auto-created
2. **Configure**: Edit the auto-generated `my_pod.md` and `my_tube.md` with your subscriptions
3. **24x7 Monitoring**: Service checks for new content every hour
4. **Auto Processing**: New episodes automatically transcribed and summarized
5. **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.md` and `my_tube.md` configuration files
- **Intelligent Deduplication**: Already processed episodes are automatically skipped based on `.podlens/status.json` tracking
- **Hourly Processing**: Service checks for new content every hour and processes automatically
- **Channel Format**: YouTube channels use simple names (e.g., `Bloomberg_Live` for `@Bloomberg_Live`)
- **Episode Organization**: Date-based folder structure with detailed file naming for easy navigation
- **Status Tracking**: View service status and processing history with `--status` flag
### 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.json` tracking

### 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
[PodLens Transcription Example](demo/Transcript_en.md)
### AI Summary Features
- **Sequential analysis**: Topic outline in order
- **Key insights**: Important takeaways and quotes
- **Technical terms**: Jargon explanation
- **Critical thinking**: First-principles analysis

[View Example Summary](demo/Summary_en.md)
### 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

[View Example Visual Story](demo/Visual_en.html)
## π License
This project is licensed under the MIT License - see the [LICENSE](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](https://github.com/openai/whisper)** - The foundational automatic speech recognition model that revolutionized audio transcription
- **[MLX Whisper](https://github.com/ml-explore/mlx-examples/tree/main/whisper)** - Apple's MLX-optimized implementation enabling fast local transcription on Apple Silicon
- **[Groq](https://groq.com/)** - Ultra-fast AI inference platform providing lightning-speed Whisper transcription via API
- **[Google Gemini](https://ai.google.dev/)** - Advanced AI model powering our intelligent summarization features
### Media Processing & Extraction
- **[yt-dlp](https://github.com/yt-dlp/yt-dlp)** - Powerful YouTube video/audio downloader, successor to youtube-dl
- **[youtube-transcript-api](https://github.com/jdepoix/youtube-transcript-api)** - Elegant Python library for extracting YouTube video transcripts
---
**π Star this repo if you find it helpful!**
Raw data
{
"_id": null,
"home_page": null,
"name": "podlens",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "Dunyuan Zha <henryzha@outlook.com>",
"keywords": "podcast, transcription, summary, youtube, apple podcast, whisper, ai",
"author": null,
"author_email": "Dunyuan Zha <henryzha@outlook.com>",
"download_url": "https://files.pythonhosted.org/packages/0b/74/0307860c93a8aa13860cb91b62ab794ca500ffee7596cb2d2d00509d7a6a/podlens-1.2.14.tar.gz",
"platform": null,
"description": "# \ud83c\udfa7 PodLens - Free Podwise: Podcast & Youtube Transcription & Summary AI Agent\n\n\ud83e\udde0 For knowledge-seekers who want to learn from audio content more effectively.\n\n\ud83e\udd16 Now with 24x7 automation service & \ud83d\udce7 smart email digest & \ud83d\udcd2 sync to Notion!\n\nA fast & cost-free & AI-powered tool that:\n- \ud83c\udf99\ufe0f transcribes audio content from Apple Podcast and YouTube platforms\n- \ud83d\udcdd summarizes\n- \ud83d\udcca visualizes\n- \ud83c\udf0f features bilingual Chinese/English interface\n\n[\u4e2d\u6587\u7248 README](README_zh.md) | **English README**\n\n\n\n\n## \u2728 Key Features\n\n- \ud83e\udd16 **24x7 Intelligent Automation**: Set-and-forget service monitors your favorite podcasts and YouTube channels, automatically processing new episodes hourly - **autopodlens**\n- \ud83d\udce7 **Smart Email Digest**: Daily automated email summaries with AI-generated insights and processed content overview\n- \ud83d\udcdd **Sync to Notion**: Automatically sync processed content to Notion with your own Notion page and token\n- \ud83c\udfaf **Interactive Manual Mode**: On-demand processing with intuitive command-line interface for immediate transcription and analysis of specific episodes - **podlens** \n- \u26a1 **Ultra-Fast Smart Transcription**: Multiple AI-powered methods (Groq API for speed, MLX Whisper for large files) with intelligent fallback chain\n- \ud83c\udf4e **Apple Podcast & YouTube Integration**: Seamless content extraction from both major platforms with smart episode detection\n- \ud83e\udde0 **AI-Powered Analysis**: Generate intelligent summaries and insights using Google Gemini AI with structured topic analysis\n- \ud83c\udfa8 **Interactive Visual Stories**: Transform content into beautiful, responsive HTML visualizations with data charts and modern UI\n- \ud83c\udf0d **Bilingual Support**: Full Chinese/English interface with smart language detection and switching\n- \ud83d\uddc2\ufe0f **Smart Organization**: Episode-based folder structure with automatic file management and duplicate detection\n\n\n## \ud83d\udce6 Installation\n\n```bash\npip install podlens\n```\n\n## \ud83d\udd27 Configuration\n\n### 1. Create .env Configuration File\n\nCreate a `.env` file in your working directory:\n\n```bash\n# .env file content\nGROQ_API_KEY=your_groq_api_key_here\nGEMINI_API_KEY=your_gemini_api_key_here\n```\n\n### 2. Get API Keys\n\n**Groq API (Recommended - Ultra-fast transcription):**\n- Visit: https://console.groq.com/\n- Register and get free API key\n- Benefits: Extremely fast Whisper large-V3 processing, generous free quota\n\n**Gemini API (AI Summary):**\n- Visit: https://aistudio.google.com/app/apikey\n- Get free API key\n- Used for generating intelligent summaries\n\n**Notion API (Sync to Notion):**\n- Visit: https://www.notion.so/my-integrations\n- Click **\"+ New integration\"**\n- Fill in the information:\n - **Name**: `Markdown Uploader` (or any name)\n - **Workspace**: Select your workspace\n - **Type**: Internal integration\n- Click **\"Submit\"**\n- **Get Notion token**: Copy the generated **\"Internal Integration Secret\"** (starts with `secret_`)\n- **Get Notion page id**: Copy the page id after `pagename-` in the URL of your Notion page: https://www.notion.so/pagename-<your-page-id>\n\n## \ud83d\ude80 Usage\n\n### Interactive Mode\n```bash\n# English version\npodlens\n\n# Chinese version \npod\n```\n\n### Automation Service (NEW!)\n```bash\n# English version 24x7 automation service\nautopodlens\n\n# Chinese version 24x7 automation service \nautopod\n\n# Check automation status\nautopodlens --status # English version\nautopod --status # Chinese version\n```\n\n### Email Service (NEW!)\n```bash\n# Email notification setup\nautopod(or autopodlens) --email your@email.com --time 08:00,18:00\n\n# Email time setup\nautopod(or autopodlens) --time 08:00,18:00\n\n# Check email service status \nautopod(or autopodlens) --email-status\n\n# Sync email configuration\nautopod(or autopodlens) --email-sync\n\n# Disable email service\nautopod(or autopodlens) --email-disable\n```\n\n### Notion Sync Service (NEW!)\n```bash\n# Notion token and page id setup\nautopod(or autopodlens) --notiontoken <your_notion_token> --notionpage <your_notion_page_id>\n\n# Upload to Notion\nautopod(or autopodlens) --notion\n```\n\n**You can also change the email service & Notion sync settings in the `.podlens/setting` file, then use '--email-sync' to sync the settings.**\n\n### Configuration Files (Auto-Generated)\n\n- `my_pod.md` - Configure monitored podcasts (created automatically)\n- `my_tube.md` - Configure monitored YouTube channels (created automatically)\n- `.podlens/setting` - Automation frequency and monitoring settings (created automatically)\n- `.podlens/status.json` - Service status and processed episodes tracking (created automatically)\n\nWhen you first run the automation service, PodLens will automatically create configuration files:\n\n**`.podlens/setting`** - Automation frequency and monitoring settings (created automatically)\n\n```markdown\n# PodLens Automation Settings\n# Run frequency (hours), supports decimals, e.g. 0.5 means every 30 minutes\nrun_frequency = 1.0\n\n# Monitor Apple Podcast (my_pod.md)\nmonitor_podcast = true\n\n# Monitor YouTube (my_tube.md)\nmonitor_youtube = true\n\n# Email notification settings\nemail_function = true\nuser_email = example@gmail.com\nnotification_times = 08:00,18:00\n```\n\n**`my_pod.md`** (auto-generated with examples):\n```markdown\n# PodLens Podcast Subscription List\n# This file manages the podcast channels you want to automatically process.\n\n## How to Use\n# - One podcast name per line\n# - Supports podcast names searchable on Apple Podcast\n# - Lines starting with `#` are comments and will be ignored\n# - Empty lines will also be ignored\n\n## Example Podcasts\nthoughts on the market\n# or: thoughts on the market - morgan stanley\n\n## Business Podcasts\n\n\n## Tech Podcasts\n```\n\n**`my_tube.md`** (auto-generated with examples):\n```markdown \n# YouTube Channel Subscription List\n\n# This file manages the YouTube channels you want to automatically process.\n\n## How to Use\n# - One channel name per line (no @ symbol needed)\n# - Channel name is the part after @ in YouTube URL\n# - Example: https://www.youtube.com/@Bloomberg_Live/videos \u2192 fill in Bloomberg_Live\n# - Lines starting with `#` are comments and will be ignored\n# - Empty lines will also be ignored\n\n## Example Channels\nBloomberg_Live\n\n\n## Business Channels\n\n\n## Tech Channels\n\n```\n\nSimply edit these files to add or remove your preferred podcasts and YouTube channels.\n\n### Interactive Interface:\n```\n\ud83c\udfa7\ud83c\udfa5 Media Transcription & Summary Tool\n==================================================\nSupports Apple Podcast and YouTube platforms\n==================================================\n\n\ud83d\udce1 Please select information source:\n1. Apple Podcast\n2. YouTube \n0. Exit\n\nPlease enter your choice (1/2/0): 1\n\n\ud83c\udfa7 You selected Apple Podcast\nPlease enter the podcast channel name: thoughts on the market\n\n\ud83d\udce5 Downloading: Episode Title...\n\u26a1\ufe0f Ultra-fast transcription...\n\ud83e\udde0 Summarizing...\n\ud83c\udfa8 Visual Story Generation?(y/n): \n```\n\n### Automation Service Example\n```bash\n# Start the automation service\n$ autopodlens\n\ud83e\udd16 Starting PodLens 24x7 Intelligent Automation Service\n\n\u23f0 Running frequency: hourly\n\ud83c\udfa7 Monitoring podcasts: 1\n\ud83d\udcfa Monitoring YouTube channels: 1\nPress Ctrl+Z to stop service\n\n\u23f0 Starting hourly check\n\ud83d\udd0d Checking podcast: thoughts on the market\n\ud83d\udce5 Processing new episode: Standing by Our Outlook...\n\u2705 thoughts on the market processing complete\n\ud83d\udd0d Checking YouTube channel: @Bloomberg_Live\n\ud83d\udce5 Processing new video: Jennifer Doudna on Future of Gene Editing \\u0026 I...\n\u2705 @Bloomberg_Live processing complete\n\u2705 Check complete - Podcasts: 1/1, YouTube: 1/1\n```\n\n### Notion Sync Service Example\n```bash\n\ud83d\udcd2 Writing to your Notion...\n\u2705 Jennifer_Doudna_on_Future_of_G...: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 2/2 [00:29<00:00, 14.52s/files]\n\u2705 Import successful!\n```\n\n## \ud83d\udccb Workflow Example\n\n### Apple Podcast Workflow\n1. **Search Channel**: Enter podcast name (e.g., \"thoughts on the market\")\n2. **Select Channel**: Choose from search results \n3. **Browse Episodes**: View recent episodes\n4. **Select Episodes**: Choose episodes for processing\n5. **Auto Processing**: Automatic download, transcription and AI summary\n6. **Create Visualization**: Optional interactive HTML stories with modern UI and data visualizations\n\n### YouTube Workflow \n1. **Input Source**: \n - Channel name (e.g., \"Bloomberg_Live\")\n - Direct video URL\n - Transcript text file\n2. **Select Episodes**: Choose videos to process\n3. **Auto Processing**: Automatic transcript extraction and AI summary\n4. **Create Visualization**: Optional interactive HTML stories with modern UI and data visualizations\n\n### Automation Workflow (NEW!)\n1. **Launch Service**: Run `autopodlens` (English) or `autopod` (Chinese) - configuration files auto-created\n2. **Configure**: Edit the auto-generated `my_pod.md` and `my_tube.md` with your subscriptions\n3. **24x7 Monitoring**: Service checks for new content every hour\n4. **Auto Processing**: New episodes automatically transcribed and summarized\n5. **Smart Deduplication**: Already processed content is skipped automatically\n\n## \ud83d\udcc1 Output Structure\n\n```\nyour-project/\n\u251c\u2500\u2500 outputs/ # Episode-based organized content\n\u2502 \u2514\u2500\u2500 [Channel Name]/\n\u2502 \u2514\u2500\u2500 [Date]/\n\u2502 \u2514\u2500\u2500 [Episode Title]/\n\u2502 \u251c\u2500\u2500 audio.mp3 # Downloaded audio file (will be deleted after processing)\n\u2502 \u251c\u2500\u2500 Transcript_[Details].md # Transcription\n\u2502 \u251c\u2500\u2500 Summary_[Details].md # AI-generated summary\n\u2502 \u2514\u2500\u2500 Visual_[Details].html # Interactive visualization\n\u251c\u2500\u2500 .podlens/ # Automation configuration\n\u2502 \u251c\u2500\u2500 setting # Service frequency and monitoring settings\n\u2502 \u2514\u2500\u2500 status.json # Processed episodes tracking\n\u251c\u2500\u2500 my_pod.md # Monitored podcasts configuration\n\u251c\u2500\u2500 my_tube.md # Monitored YouTube channels configuration\n\u2514\u2500\u2500 .env # Your API keys\n```\n\n## \ud83d\udee0\ufe0f Advanced Features\n\n### Episode-based File Organization\n- **Dedicated Folders**: Each episode gets its own folder for clean organization\n- **Consistent Structure**: All related files (audio, transcript, summary, visualization) in one place\n\n### 24x7 Automation Service \n- **Smart Monitoring**: Automatic tracking of podcasts and YouTube channels via `my_pod.md` and `my_tube.md` configuration files\n- **Intelligent Deduplication**: Already processed episodes are automatically skipped based on `.podlens/status.json` tracking\n- **Hourly Processing**: Service checks for new content every hour and processes automatically\n- **Channel Format**: YouTube channels use simple names (e.g., `Bloomberg_Live` for `@Bloomberg_Live`)\n- **Episode Organization**: Date-based folder structure with detailed file naming for easy navigation\n- **Status Tracking**: View service status and processing history with `--status` flag\n\n### Smart Email Digest Service\n- **Daily Summaries**: Automated email reports with AI-generated insights\n- **Flexible Scheduling**: Multiple daily notification times (e.g., 08:00, 18:00) \n- **Rich HTML Format**: Beautiful email layout with channel groupings and key insights\n- **Intelligent Content**: AI-powered daily digest highlighting important information\n- **Easy Management**: Simple commands for setup, status check, and configuration\n\n### Notion Sync Service\n- **Automatic Sync**: Automatically sync processed content to Notion with your own Notion page and token\n- **Smart Deduplication**: Already processed episodes are automatically skipped based on `.podlens/status.json` tracking\n\n\n\n### Smart Transcription Logic\n- **Small files (<25MB)**: Groq API ultra-fast transcription\n- **Large files (>25MB)**: Automatic compression + fallback to MLX Whisper\n- **Fallback chain**: Groq \u2192 MLX Whisper \u2192 Error handling\n\n[PodLens Transcription Example](demo/Transcript_en.md)\n\n### AI Summary Features\n- **Sequential analysis**: Topic outline in order\n- **Key insights**: Important takeaways and quotes\n- **Technical terms**: Jargon explanation\n- **Critical thinking**: First-principles analysis\n\n\n[View Example Summary](demo/Summary_en.md)\n\n### Interactive Visualization Features\n- **Modern Web Design**: Beautiful, responsive HTML pages using Tailwind CSS\n- **Data Visualizations**: Automatic charts and graphs for numerical content (percentages, metrics, comparisons)\n- **Interactive Elements**: Smooth animations, collapsible sections, and real-time search powered by Alpine.js\n- **Professional Styling**: Glassmorphism effects, gradient accents, and Apple-inspired clean design\n- **Content Intelligence**: AI automatically identifies and visualizes key data points from transcripts and summaries\n- **Dual Input Support**: Generate visualizations from either transcripts or summaries\n\n\n\n[View Example Visual Story](demo/Visual_en.html)\n\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n\n## \ud83d\ude4f Acknowledgements\n\nThis project stands on the shoulders of giants. We are deeply grateful to the following open source projects, technologies, and communities that made PodLens possible:\n\n### Core AI Technologies\n- **[OpenAI Whisper](https://github.com/openai/whisper)** - The foundational automatic speech recognition model that revolutionized audio transcription\n- **[MLX Whisper](https://github.com/ml-explore/mlx-examples/tree/main/whisper)** - Apple's MLX-optimized implementation enabling fast local transcription on Apple Silicon\n- **[Groq](https://groq.com/)** - Ultra-fast AI inference platform providing lightning-speed Whisper transcription via API\n- **[Google Gemini](https://ai.google.dev/)** - Advanced AI model powering our intelligent summarization features\n\n### Media Processing & Extraction\n- **[yt-dlp](https://github.com/yt-dlp/yt-dlp)** - Powerful YouTube video/audio downloader, successor to youtube-dl\n- **[youtube-transcript-api](https://github.com/jdepoix/youtube-transcript-api)** - Elegant Python library for extracting YouTube video transcripts\n\n\n---\n\n**\ud83c\udf1f Star this repo if you find it helpful!** \n\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Intelligent Podcast & Youtube Transcription & Understanding AI Agent",
"version": "1.2.14",
"project_urls": {
"Homepage": "https://github.com/512z/podlens/tree/main",
"Repository": "https://github.com/512z/podlens/tree/main"
},
"split_keywords": [
"podcast",
" transcription",
" summary",
" youtube",
" apple podcast",
" whisper",
" ai"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "4326d65752ddd6149f028886d26cc8e39963cc2d0f7b4303d9b4da1352223da1",
"md5": "369292210149f7f96ac12ce5b91f0546",
"sha256": "90cdf196ec24e507d53d9fadac239cba009113a9dfbf7778c4168c5c4e788764"
},
"downloads": -1,
"filename": "podlens-1.2.14-py3-none-any.whl",
"has_sig": false,
"md5_digest": "369292210149f7f96ac12ce5b91f0546",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 156996,
"upload_time": "2025-09-04T16:22:42",
"upload_time_iso_8601": "2025-09-04T16:22:42.232735Z",
"url": "https://files.pythonhosted.org/packages/43/26/d65752ddd6149f028886d26cc8e39963cc2d0f7b4303d9b4da1352223da1/podlens-1.2.14-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0b740307860c93a8aa13860cb91b62ab794ca500ffee7596cb2d2d00509d7a6a",
"md5": "a1f4a6c53651d1c8e0a94dc53d0df45c",
"sha256": "11db6f4b7202feb8d428a81794b6ce57e708a0955aaf159533c64113fddc07f4"
},
"downloads": -1,
"filename": "podlens-1.2.14.tar.gz",
"has_sig": false,
"md5_digest": "a1f4a6c53651d1c8e0a94dc53d0df45c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 11747864,
"upload_time": "2025-09-04T16:23:14",
"upload_time_iso_8601": "2025-09-04T16:23:14.868718Z",
"url": "https://files.pythonhosted.org/packages/0b/74/0307860c93a8aa13860cb91b62ab794ca500ffee7596cb2d2d00509d7a6a/podlens-1.2.14.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-04 16:23:14",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "512z",
"github_project": "podlens",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "requests",
"specs": []
},
{
"name": "feedparser",
"specs": [
[
">=",
"6.0.0"
]
]
},
{
"name": "python-dotenv",
"specs": []
},
{
"name": "google-generativeai",
"specs": []
},
{
"name": "beautifulsoup4",
"specs": []
},
{
"name": "tqdm",
"specs": []
},
{
"name": "mlx-whisper",
"specs": []
},
{
"name": "groq",
"specs": []
},
{
"name": "openai-whisper",
"specs": []
},
{
"name": "youtube-transcript-api",
"specs": []
},
{
"name": "yt-dlp",
"specs": []
},
{
"name": "schedule",
"specs": []
}
],
"lcname": "podlens"
}