Checks your Gmail Inbox for Mails send from Kindle downloads pdf and stores it
Go to file
2024-11-08 19:00:23 +01:00
.gitignore first working version 2024-11-08 18:34:58 +01:00
daemon.py code improvements 2024-11-08 18:54:36 +01:00
daemon.service code improvements 2024-11-08 18:54:36 +01:00
LICENSE Initial commit 2024-11-08 09:26:26 +01:00
main.py code improvements 2024-11-08 18:54:36 +01:00
README.md 2024-11-08 19:00:23 +01:00
web.py first working version 2024-11-08 18:34:58 +01:00
web.service code improvements 2024-11-08 18:54:36 +01:00

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 dont 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 data directory.
  • 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

  1. Clone the Repository:

    git clone https://github.com/yourusername/amznMailConverter.git
    cd amznMailConverter
    
  2. Install Dependencies:

    pip install -r requirements.txt
    

    The requirements.txt should include:

    google-auth
    google-auth-oauthlib
    google-auth-httplib2
    google-api-python-client
    requests
    beautifulsoup4
    python-daemon  # Only if using the daemon library
    
  3. 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.
  4. 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.json file will be generated to store your access token.

Usage

To run the script as a daemon, use one of the following methods:

python3 email_pdf_downloader.py

The script will run in the background, checking for new emails every 5 minutes.

2. Using Systemd (Linux)

  1. 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
      
  2. Enable and Start the Service:

    sudo systemctl daemon-reload
    sudo systemctl enable email_reader.service
    sudo systemctl start email_reader.service
    
  3. 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_daemon function in email_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.