This project creates a daily paper-to-audio workflow:
- Fetch latest iArxiv daily email from Gmail.
- Extract top-N ranked arXiv IDs from visible ranked rows.
- Download PDFs directly from
https://arxiv.org/pdf/<id>.pdf(tracking-safe, no iArxiv link usage). - Automate NotebookLM to upload an
instructions.txtsource plus papers, inject a custom Audio Overview prompt in Studio, then trigger audio overview. - Provide cleanup commands for local files and notebook deletion.
- Create env and install:
python3 -m venv .venvsource .venv/bin/activatepip install -e .[dev]playwright install chromium
- Copy
.env.exampleto.envand adjust paths/settings. - Place Gmail OAuth client secret file at
GMAIL_CREDENTIALS_FILE. - For NotebookLM login prefill, copy
harvardkey_credentials.example.jsontoharvardkey_credentials.jsonand set your credentials there (2FA still manual). - Run:
daily_podcast run- Test with sample email:
daily_podcast run --eml-file EXAMPLE_IARXIV.eml - Note:
runauto-cleans local downloaded files after notebook creation; it does not delete the notebook.
daily_podcast run [--date YYYY-MM-DD] [--eml-file path/to/file.eml]daily_podcast fetch-email [--date YYYY-MM-DD] [--eml-file path/to/file.eml]daily_podcast download-pdfs [--date YYYY-MM-DD | --latest]daily_podcast create-notebook [--date YYYY-MM-DD | --latest]daily_podcast cleanup-files [--date YYYY-MM-DD | --latest]daily_podcast cleanup-notebook [--date YYYY-MM-DD | --latest]
For local testing without Gmail credentials, use:
daily_podcast fetch-email --eml-file EXAMPLE_IARXIV.eml
- Full setup handoff doc (LLM-friendly):
LLM_SETUP_HANDOFF.md