3.3 KiB
Amazon Kindle Email PDF Downloader
This project is a Python daemon that connects to your Gmail account, searches for unread emails from "Amazon Kindle Support" containing PDF download links, and automatically downloads the PDFs to a specified local directory if they don’t already exist. The script runs as a background service and checks for new emails at a specified interval.
Features
- Automatically reads unread emails from Gmail.
- Searches for emails from "Amazon Kindle Support" with PDF download links.
- Parses the email to extract the actual PDF download link.
- Downloads the PDF file and saves it to a local
datadirectory. - Runs as a daemon, checking for new emails periodically.
Requirements
- Python 3.7+
- Google API credentials for Gmail API access
- Gmail API access enabled in Google Cloud Console
Installation
-
Clone the Repository:
git clone https://github.com/yourusername/amznMailConverter.git cd amznMailConverter -
Install Dependencies:
pip install -r requirements.txtThe
requirements.txtshould include:google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client requests beautifulsoup4 python-daemon # Only if using the daemon library -
Set Up Google API Credentials:
- Create a project in the Google Cloud Console.
- Enable the Gmail API.
- Download the OAuth 2.0 Client Credentials JSON file, rename it to
credentials.json, and place it in the project root directory.
-
Authorize Access:
- On first run, the script will prompt you to authorize Gmail API access. Follow the instructions in the browser to grant permissions.
- After authorization, a
token.jsonfile will be generated to store your access token.
Usage
To run the script as a daemon, use one of the following methods:
1. Using Python Daemon Library (Recommended for Simplicity)
python3 email_pdf_downloader.py
The script will run in the background, checking for new emails every 5 minutes.
2. Using Systemd (Linux)
-
Create a Systemd Service:
- Create a file
/etc/systemd/system/email_reader.service:[Unit] Description=Email PDF Downloader Daemon [Service] ExecStart=/usr/bin/python3 /path/to/email_pdf_downloader.py Restart=always User=your_username WorkingDirectory=/path/to/project [Install] WantedBy=multi-user.target
- Create a file
-
Enable and Start the Service:
sudo systemctl daemon-reload sudo systemctl enable email_reader.service sudo systemctl start email_reader.service -
Check Status:
sudo systemctl status email_reader.service
Configuration
- SCOPES: OAuth scopes for Gmail API access.
- SEARCH_QUERY: Query to filter emails by sender ("Amazon Kindle Support").
- SCRIPT_DIR: Base directory where files are saved.
- Interval: The script is set to check for new emails every 5 minutes (300 seconds). You can adjust this interval in the
run_daemonfunction inemail_pdf_downloader.py.
Logging
Logging information (success messages, errors) is printed to the console or saved to systemd logs when running as a systemd service.
License
This project is licensed under the MIT License.