📰 Newsprint - Your Personalized Daily News Digest
Newsprint is a Google Apps Script that automates the creation and delivery of a personalized news digest. It combines RSS feeds, topic monitoring, market data, and weather forecasts into a beautifully formatted email, delivered daily to your inbox or Kindle.
✨ Features
- 📡 RSS Feed Aggregation: Combine your favorite news sources into a single, clean digest.
- 🎯 Topic Monitoring: Track news about specific keywords, brands, or topics.
- 📈 Market Data: Get daily updates on stocks and cryptocurrencies.
- 🌤️ Weather Forecasts: Include weather reports for multiple locations.
- 🤖 AI Summarization: Uses OpenAI (GPT-4o-mini) to generate concise, narrative-style news summaries.
- 📧 Dual Delivery: Send digests …
📰 Newsprint - Your Personalized Daily News Digest
Newsprint is a Google Apps Script that automates the creation and delivery of a personalized news digest. It combines RSS feeds, topic monitoring, market data, and weather forecasts into a beautifully formatted email, delivered daily to your inbox or Kindle.
✨ Features
- 📡 RSS Feed Aggregation: Combine your favorite news sources into a single, clean digest.
- 🎯 Topic Monitoring: Track news about specific keywords, brands, or topics.
- 📈 Market Data: Get daily updates on stocks and cryptocurrencies.
- 🌤️ Weather Forecasts: Include weather reports for multiple locations.
- 🤖 AI Summarization: Uses OpenAI (GPT-4o-mini) to generate concise, narrative-style news summaries.
- 📧 Dual Delivery: Send digests to both a regular email address and a Kindle e-reader.
- 🌐 Customizable: Easily configured with your own sources, topics, and settings.
📸 What It Looks Like
A typical morning digest delivered to your inbox
🚀 Quick Start
Prerequisites
- A Google Account (to run the script).
- An OpenAI API Key (for AI-powered news summaries).
Installation in 5 Minutes
Create a New Google Apps Script
- Go to script.google.com and click New project.
- Give the project a name, like "Newsprint".
Copy the Code
- Open the
newsprint.gsfile in this repository. - Copy its entire contents and paste it into the script editor, replacing any default code.
Securely Store Your API Key
- In the Apps Script editor, go to Project Settings (the ⚙️ icon on the left).
- Under Script Properties, click Add script property.
- Create a property with the name
OPENAI_API_KEYand paste your secret OpenAI API key as the value. - Click Save script properties. This is the most secure way to handle API keys in Apps Script.
Configure Your Digest
- Back in the Editor (the
<>icon), all configuration is done in theCONFIGURATIONblock at the top of thenewsprint.gsfile. - Set your
RECIPIENT_EMAIL, and optionally yourKINDLE_EMAIL. - Add your preferred
NEWS_SOURCES,ALERT_TOPICS,LOCATIONS, and market symbols. See the Configuration Guide for more details.
Set the Daily Trigger
-
In the editor, click the Triggers icon (the ⏰ icon on the left).
-
Click Add Trigger.
-
Set it up as follows:
-
Function to run:
dailyReport -
Deployment:
Head -
Event source:
Time-driven -
Type of time-based trigger:
Day timer -
Time of day: Your desired delivery time (e.g., 6am - 7am).
-
Click Save.
Authorize and Run
- To ensure everything is working, run the script once manually. In the editor, select the
dailyReportfunction from the dropdown at the top and click ▶️ Run. - A dialog will appear asking for authorization. Grant the script the necessary permissions to send emails and fetch data.
- Check your email for your first Newsprint digest!
⚙️ Configuration Guide
All configuration is done by editing the variables in the CONFIGURATION section at the top of newsprint.gs.
RSS News Sources
Add or modify RSS feeds in the NEWS_SOURCES array. A good starting list is already included.
const NEWS_SOURCES = [
{ name: "Associated Press", url: "https://apnews.com/apf-topnews" },
{ name: "Reuters", url: "https://www.reuters.com/rssfeed/technologyNews" },
// Add your sources here
];
See docs/RSS_SOURCES.md for a large list of international and topic-specific feeds.
Topic Monitoring
Use ALERT_TOPICS to monitor Google News for specific keywords or phrases.
const ALERT_TOPICS = [
"\"Artificial Intelligence\"", // Use quotes for exact phrase matching
"\"Tech Startups\"",
"Your Company Name"
];
Market Data
Configure stocks and cryptocurrencies to track.
const CRYPTO_SYMBOLS = ["BTC", "ETH"];
const STOCK_SYMBOLS = ["AAPL", "GOOGL", "TSLA"];
Weather Locations
Add locations for your weather report.
const LOCATIONS = {
"New York": { lat: 40.7128, lon: -74.0060 },
"London": { lat: 51.5074, lon: -0.1278 },
};
📧 Kindle Delivery Setup
- Find Your Kindle Email: On Amazon, go to
Manage Your Content and Devices→Devicesto find your Kindle’s email address (e.g.,yourname@kindle.com). - Approve Sender: In
Settings→Personal Document Settings, add your Google Account’s email address to the "Approved Personal Document E-mail List". - Update Script: Set the
KINDLE_EMAILandUSE_KINDLEvariables in the script’s configuration section.
🐛 Troubleshooting
- No email received? Check your spam folder. Verify the script ran by going to Executions in the Apps Script editor. Ensure your trigger is enabled.
- Market data missing? The script uses public APIs that can occasionally be unavailable. The script includes fallbacks for crypto data.
- Kindle delivery failed? Double-check that your Kindle email is correct and that you have approved your Google email address in your Amazon settings.
See docs/TROUBLESHOOTING.md for more details.
🤝 Contributing
Contributions are welcome! Please fork the repository, create a feature branch, and open a pull request.
Ideas for contributions:
- Add new data sources (e.g., more market data APIs).
- Improve summarization prompts.
- Add alternative delivery methods (e.g., Telegram, Slack).
- Implement a web UI for configuration.
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
📧 Support & Contact
Have a question or a feature request? Please open an issue on the GitHub repository.