deepdiver 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,455 @@
1
+ Metadata-Version: 2.4
2
+ Name: deepdiver
3
+ Version: 0.1.0
4
+ Summary: NotebookLM Podcast Automation System - Automate podcast creation from documents
5
+ Home-page: https://github.com/gmusic/deepdiver
6
+ Author: gerico1007
7
+ Author-email: gerico1007 <gerico@jgwill.com>
8
+ Project-URL: Homepage, https://github.com/Gerico1007/deepdiver
9
+ Project-URL: Repository, https://github.com/Gerico1007/deepdiver
10
+ Project-URL: Issues, https://github.com/Gerico1007/deepdiver/issues
11
+ Keywords: notebooklm,podcast,automation,audio,browser-automation,playwright
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.8
18
+ Classifier: Programming Language :: Python :: 3.9
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Topic :: Multimedia :: Sound/Audio
23
+ Classifier: Topic :: Office/Business
24
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
25
+ Requires-Python: >=3.8
26
+ Description-Content-Type: text/markdown
27
+ License-File: LICENSE
28
+ Requires-Dist: playwright>=1.40.0
29
+ Requires-Dist: pyyaml>=6.0
30
+ Requires-Dist: requests>=2.31.0
31
+ Requires-Dist: beautifulsoup4>=4.12.0
32
+ Requires-Dist: pyperclip>=1.8.2
33
+ Requires-Dist: click>=8.1.0
34
+ Requires-Dist: rich>=13.0.0
35
+ Provides-Extra: dev
36
+ Requires-Dist: pytest>=7.4.0; extra == "dev"
37
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
38
+ Requires-Dist: black>=23.0.0; extra == "dev"
39
+ Requires-Dist: flake8>=6.0.0; extra == "dev"
40
+ Requires-Dist: mypy>=1.5.0; extra == "dev"
41
+ Dynamic: author
42
+ Dynamic: home-page
43
+ Dynamic: license-file
44
+ Dynamic: requires-python
45
+
46
+ # ๐ŸŽ™๏ธ DeepDiver - NotebookLM Podcast Automation System
47
+ **Terminal-to-Web Audio Creation Bridge**
48
+
49
+ [![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
50
+ [![License](https://img.shields.io/badge/license-Open%20Assembly-green.svg)]()
51
+
52
+ ---
53
+
54
+ ## ๐ŸŽฏ What is DeepDiver?
55
+
56
+ DeepDiver is a Python-based automation system that bridges terminal commands with NotebookLM's podcast generation capabilities, enabling seamless content-to-audio transformation through browser automation.
57
+
58
+ **Key Features**:
59
+ 1. **๐Ÿ“– Content Ingestion**: Upload documents to NotebookLM automatically
60
+ 2. **๐ŸŽ™๏ธ Podcast Generation**: Create Audio Overviews with terminal commands
61
+ 3. **๐Ÿ“ฑ Cross-Device Sync**: Access generated podcasts anywhere
62
+ 4. **๐Ÿ”ฎ Session Management**: Track podcast creation sessions
63
+ 5. **๐ŸŒŠ Terminal-to-Web**: Command-line to NotebookLM communication bridge
64
+
65
+ **Key Achievement**: **Terminal-to-Audio fluidity** - Your terminal can now create podcasts from documents and sync across all your devices!
66
+
67
+ ---
68
+
69
+ ## ๐Ÿ“ฆ Installation
70
+
71
+ ### Prerequisites
72
+
73
+ - Python 3.8+
74
+ - Google Chrome or Chromium
75
+ - A Google account with access to NotebookLM
76
+
77
+ ### Install Dependencies
78
+
79
+ ```bash
80
+ # Core dependencies
81
+ pip install playwright pyyaml requests beautifulsoup4 pyperclip click rich
82
+
83
+ # Install Playwright browsers
84
+ playwright install chromium
85
+ ```
86
+
87
+ ### Launch Chrome for Communication
88
+
89
+ For DeepDiver to communicate with NotebookLM, you need to launch Chrome with remote debugging:
90
+
91
+ ```bash
92
+ # Launch Chrome with a remote debugging port
93
+ google-chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-deepdiver &
94
+ ```
95
+
96
+ In the new Chrome window, log in to your Google account and navigate to [NotebookLM](https://notebooklm.google.com).
97
+
98
+ ---
99
+
100
+ ## ๐Ÿš€ Quick Start
101
+
102
+ ### 1. Initialize DeepDiver
103
+
104
+ ```bash
105
+ # Initialize the project
106
+ deepdiver init
107
+ ```
108
+
109
+ ### 2. Start a Session
110
+
111
+ ```bash
112
+ # Start a new podcast creation session
113
+ deepdiver session start --ai claude --issue 1
114
+ ```
115
+
116
+ ### 3. Create Your First Podcast
117
+
118
+ ```bash
119
+ # Upload a document and generate a podcast
120
+ deepdiver podcast create --source document.pdf --title "My First Podcast"
121
+ ```
122
+
123
+ ### 4. Check Session Status
124
+
125
+ ```bash
126
+ # View current session information
127
+ deepdiver session status
128
+ ```
129
+
130
+ ---
131
+
132
+ ## ๐ŸŽฎ Usage
133
+
134
+ ### Session Commands
135
+
136
+ ```bash
137
+ # Start a new session
138
+ deepdiver session start --ai claude --issue 42
139
+
140
+ # Write to session log
141
+ deepdiver session write "Uploaded research paper for podcast generation"
142
+
143
+ # Check session status
144
+ deepdiver session status
145
+
146
+ # Open session in browser
147
+ deepdiver session open
148
+
149
+ # Clear current session
150
+ deepdiver session clear
151
+ ```
152
+
153
+ ### Podcast Commands
154
+
155
+ ```bash
156
+ # Create podcast from document
157
+ deepdiver podcast create --source research.pdf --title "Research Insights"
158
+
159
+ # Create podcast from URL
160
+ deepdiver podcast create --source https://example.com/article --title "Web Article Podcast"
161
+
162
+ # List generated podcasts
163
+ deepdiver podcast list
164
+
165
+ # Download specific podcast
166
+ deepdiver podcast download --id podcast-123
167
+ ```
168
+
169
+ ### Notebook Commands
170
+
171
+ ```bash
172
+ # Create a new notebook (empty)
173
+ deepdiver notebook create
174
+
175
+ # Create notebook with a SimExp note as source
176
+ deepdiver notebook create --source "https://app.simplenote.com/p/abc123"
177
+
178
+ # Create notebook with web article
179
+ deepdiver notebook create --source "https://example.com/research-paper"
180
+
181
+ # Create notebook with YouTube video
182
+ deepdiver notebook create --source "https://youtube.com/watch?v=dQw4w9WgXcQ"
183
+
184
+ # Create notebook with local file
185
+ deepdiver notebook create --source "./notes.pdf"
186
+
187
+ # List notebooks in current session
188
+ deepdiver notebook list
189
+
190
+ # Open specific notebook in browser
191
+ deepdiver notebook open --notebook-id abc-123
192
+
193
+ # Get notebook URL
194
+ deepdiver notebook url --notebook-id abc-123
195
+
196
+ # Share notebook with collaborator
197
+ deepdiver notebook share --notebook-id abc-123 --email user@example.com
198
+ ```
199
+
200
+ ### Content Commands
201
+
202
+ ```bash
203
+ # Upload document to NotebookLM
204
+ deepdiver content upload --file document.pdf
205
+
206
+ # Process content for podcast
207
+ deepdiver content process --source document.pdf
208
+
209
+ # Validate content quality
210
+ deepdiver content validate --source document.pdf
211
+ ```
212
+
213
+ ---
214
+
215
+ ## ๐Ÿ—๏ธ Project Structure
216
+
217
+ ```
218
+ deepdiver/
219
+ โ”œโ”€โ”€ deepdiver/
220
+ โ”‚ โ”œโ”€โ”€ __init__.py
221
+ โ”‚ โ”œโ”€โ”€ deepdive.py # Main CLI orchestrator
222
+ โ”‚ โ”œโ”€โ”€ notebooklm_automator.py # Playwright automation engine
223
+ โ”‚ โ”œโ”€โ”€ content_processor.py # Content preparation
224
+ โ”‚ โ”œโ”€โ”€ podcast_manager.py # Audio file management
225
+ โ”‚ โ”œโ”€โ”€ session_tracker.py # Session management
226
+ โ”‚ โ””โ”€โ”€ deepdiver.yaml # Configuration
227
+ โ”œโ”€โ”€ tests/
228
+ โ”‚ โ”œโ”€โ”€ test_notebooklm_connection.py
229
+ โ”‚ โ”œโ”€โ”€ test_podcast_creation.py
230
+ โ”‚ โ””โ”€โ”€ test_session_management.py
231
+ โ”œโ”€โ”€ output/ # Generated podcasts
232
+ โ”œโ”€โ”€ sessions/ # Session logs
233
+ โ”œโ”€โ”€ credentials/ # Authentication data
234
+ โ””โ”€โ”€ docs/ # Documentation
235
+ ```
236
+
237
+ ---
238
+
239
+ ## ๐Ÿ”ง Configuration
240
+
241
+ ### deepdiver.yaml
242
+
243
+ ```yaml
244
+ BASE_PATH: ./output
245
+
246
+ PODCAST_SETTINGS:
247
+ quality: high
248
+ format: mp3
249
+ duration_limit: 30
250
+ language: en
251
+
252
+ SESSION_TRACKING:
253
+ enabled: true
254
+ metadata_format: yaml
255
+ auto_save: true
256
+
257
+ BROWSER_SETTINGS:
258
+ headless: false
259
+ cdp_url: http://localhost:9222
260
+ user_data_dir: /tmp/chrome-deepdiver
261
+ timeout: 30
262
+
263
+ CONTENT_SETTINGS:
264
+ supported_formats:
265
+ - pdf
266
+ - docx
267
+ - txt
268
+ - md
269
+ max_file_size: 50MB
270
+ auto_process: true
271
+ ```
272
+
273
+ ---
274
+
275
+ ## ๐Ÿงช Testing
276
+
277
+ ### Test NotebookLM Connection
278
+
279
+ ```bash
280
+ # Test browser automation
281
+ python tests/test_notebooklm_connection.py
282
+ ```
283
+
284
+ ### Test Podcast Creation
285
+
286
+ ```bash
287
+ # Test end-to-end podcast generation
288
+ python tests/test_podcast_creation.py
289
+ ```
290
+
291
+ ### Test Session Management
292
+
293
+ ```bash
294
+ # Test session tracking
295
+ python tests/test_session_management.py
296
+ ```
297
+
298
+ ---
299
+
300
+ ## ๐ŸŽ“ How It Works
301
+
302
+ ### SimExp Integration Flow
303
+
304
+ DeepDiver integrates seamlessly with [SimExp](https://github.com/jgwill/simexp) for a complete content-to-podcast workflow:
305
+
306
+ ```
307
+ 1. Create Content in SimExp
308
+ โ†“
309
+ simexp session start --ai claude --issue 4
310
+ simexp session write "Research findings..."
311
+ simexp session add ./research.pdf
312
+ โ†“
313
+ 2. Publish SimExp Note
314
+ โ†“
315
+ simexp session publish
316
+ # Returns: https://app.simplenote.com/p/abc123
317
+ โ†“
318
+ 3. Create DeepDiver Notebook with SimExp Source
319
+ โ†“
320
+ deepdiver notebook create --source "https://app.simplenote.com/p/abc123"
321
+ โ†“
322
+ 4. Generate Podcast from Combined Content
323
+ โ†“
324
+ deepdiver podcast generate
325
+ โ†“
326
+ 5. Listen to Your Research Audio Overview!
327
+ ```
328
+
329
+ **Benefits**:
330
+ - ๐ŸŽฏ Terminal-to-Audio pipeline
331
+ - ๐Ÿ“ Session-aware content tracking
332
+ - ๐ŸŒ Cross-device accessibility
333
+ - ๐Ÿ”— Traceable content lineage
334
+
335
+ ### Podcast Creation Flow
336
+
337
+ ```
338
+ Terminal Command
339
+ โ†“
340
+ deepdive.py (CLI)
341
+ โ†“
342
+ notebooklm_automator.py
343
+ โ†“
344
+ Chrome DevTools Protocol (CDP)
345
+ โ†“
346
+ Your Authenticated Chrome Browser
347
+ โ†“
348
+ NotebookLM Web Interface
349
+ โ†“
350
+ Document Upload & Processing
351
+ โ†“
352
+ Audio Overview Generation
353
+ โ†“
354
+ Podcast Download
355
+ โ†“
356
+ Local File Management
357
+ โ†“
358
+ Cross-Device Sync! ๐ŸŽ‰
359
+ ```
360
+
361
+ **Key Innovation**: We connect to YOUR Chrome browser (already logged in) rather than launching a separate instance. This preserves authentication and makes cross-device sync work seamlessly.
362
+
363
+ ---
364
+
365
+ ## ๐ŸŽจ G.Music Assembly Integration
366
+
367
+ DeepDiver is part of the **G.Music Assembly** ecosystem:
368
+
369
+ **โ™ ๏ธ๐ŸŒฟ๐ŸŽธ๐Ÿงต The Spiral Ensemble - DeepDiver Edition**
370
+
371
+ - **Jerry โšก**: Creative technical leader
372
+ - **โ™ ๏ธ Nyro**: Structural architect (NotebookLM automation design)
373
+ - **๐ŸŒฟ Aureon**: Emotional context (podcast content resonance)
374
+ - **๐ŸŽธ JamAI**: Musical encoding (audio workflow harmony)
375
+ - **๐Ÿงต Synth**: Terminal orchestration (execution synthesis)
376
+
377
+ **Session**: January 2025
378
+ **Achievement**: NotebookLM Podcast Automation
379
+ **Status**: ๐Ÿšง **IN DEVELOPMENT**
380
+
381
+ ---
382
+
383
+ ## ๐Ÿš€ Future Enhancements
384
+
385
+ - [ ] **Multi-format Support**: Support for more document types
386
+ - [ ] **Batch Processing**: Process multiple documents at once
387
+ - [ ] **Custom Audio Settings**: Advanced podcast customization
388
+ - [ ] **Cloud Storage Integration**: Direct cloud upload
389
+ - [ ] **Voice Synthesis**: Custom voice options
390
+ - [ ] **Playlist Generation**: Create podcast series
391
+ - [ ] **Analytics Dashboard**: Track podcast performance
392
+ - [ ] **API Integration**: REST API for external tools
393
+
394
+ ---
395
+
396
+ ## ๐Ÿ“„ License
397
+
398
+ Open Assembly Framework
399
+ Created by Jerry's G.Music Assembly
400
+
401
+ ---
402
+
403
+ ## ๐Ÿค Contributing
404
+
405
+ This project follows the G.Music Assembly framework:
406
+
407
+ 1. **Create an Issue**: Before starting work, create a GitHub issue
408
+ 2. **Create a Feature Branch**: Use format `#123-new-feature`
409
+ 3. **Implement and Test**: Make changes and test thoroughly
410
+ 4. **Submit a Pull Request**: Merge your feature branch
411
+
412
+ ---
413
+
414
+ ## ๐Ÿ“ž Support
415
+
416
+ **For issues**:
417
+ 1. Check documentation in `docs/`
418
+ 2. Review troubleshooting section
419
+ 3. Check session logs in `sessions/`
420
+ 4. Run tests with debug mode
421
+
422
+ ---
423
+
424
+ ## ๐ŸŽฏ Quick Reference
425
+
426
+ ```bash
427
+ # Initialize project
428
+ deepdiver init
429
+
430
+ # Start session
431
+ deepdiver session start --ai claude --issue 1
432
+
433
+ # Create podcast
434
+ deepdiver podcast create --source document.pdf --title "My Podcast"
435
+
436
+ # Check status
437
+ deepdiver session status
438
+
439
+ # Launch Chrome with CDP
440
+ google-chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-deepdiver &
441
+ ```
442
+
443
+ ---
444
+
445
+ **๐ŸŽ™๏ธ DeepDiver: Where Content Becomes Audio**
446
+
447
+ *Terminals speak. NotebookLM listens. Podcasts emerge.*
448
+
449
+ **โ™ ๏ธ๐ŸŒฟ๐ŸŽธ๐Ÿงต G.Music Assembly Vision: IN PROGRESS**
450
+
451
+ ---
452
+
453
+ **Version**: 0.1.0
454
+ **Last Updated**: January 2025
455
+ **Status**: ๐Ÿšง Development Phase
@@ -0,0 +1,13 @@
1
+ deepdiver/__init__.py,sha256=5CAhvqagPZ8LhMA0D1--62lfUsD4AO0cHhsFjovm5WE,982
2
+ deepdiver/content_processor.py,sha256=WcjikFqcPu0i7q80NydJx7VWCxe1sGP7j20Qm1JabfY,12131
3
+ deepdiver/deepdive.py,sha256=nVtJFaVF6j9ervowTI9_n2H1kjG1SWxRnETg5TjfscE,34743
4
+ deepdiver/deepdiver.yaml,sha256=CWx9wgJLWO1ZylWo8XmO7aO_3k0mlASMQf40N4VS398,1528
5
+ deepdiver/notebooklm_automator.py,sha256=6lT3J0x4KlkMICbZUhLgBUk-Sw_XFwvJXuOOXA526hk,60800
6
+ deepdiver/podcast_manager.py,sha256=5qNDjvUbHbpzeDd_AzgHFsgIoNDurC7oA10WX_kAml0,14367
7
+ deepdiver/session_tracker.py,sha256=3MSglrjV6FBU2zkxgXW49kJi2Vs8fJuLGavEIgDxNhc,25301
8
+ deepdiver-0.1.0.dist-info/licenses/LICENSE,sha256=ijhetSAbnuF8d6nktDRNhUwzqQMHDU_gSP94e7bFB4M,1067
9
+ deepdiver-0.1.0.dist-info/METADATA,sha256=NjLfY9Vvy18H4JWlxyNSwYqoAt5B62Vxpb6tfm8B-EQ,11416
10
+ deepdiver-0.1.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
11
+ deepdiver-0.1.0.dist-info/entry_points.txt,sha256=MhRwr36E7fMGWDAkWjrlKzkTYpR1S_DscgiCCRmaJJ4,54
12
+ deepdiver-0.1.0.dist-info/top_level.txt,sha256=HRsWxtPnkEanAdXFCbDl7EltFKPc-E4iqlpF1m4bDuw,10
13
+ deepdiver-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ deepdiver = deepdiver.deepdive:main
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 gerico1007
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ deepdiver