podlens


Namepodlens JSON
Version 1.2.14 PyPI version JSON
download
home_pageNone
SummaryIntelligent Podcast & Youtube Transcription & Understanding AI Agent
upload_time2025-09-04 16:23:14
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords podcast transcription summary youtube apple podcast whisper ai
VCS
bugtrack_url
requirements requests feedparser python-dotenv google-generativeai beautifulsoup4 tqdm mlx-whisper groq openai-whisper youtube-transcript-api yt-dlp schedule
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 🎧 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**

![Terminal Demo](demo/terminal.gif)


## ✨ 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

![PodLens Email Example](demo/email_en.jpg)

### 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

![PodLens Summary Example](demo/summary.png)
[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


![PodLens Visual Story Example](demo/visual_demo.png)
[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![Terminal Demo](demo/terminal.gif)\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![PodLens Email Example](demo/email_en.jpg)\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![PodLens Summary Example](demo/summary.png)\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![PodLens Visual Story Example](demo/visual_demo.png)\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"
}
        
Elapsed time: 2.33424s