Automated tool to download "Die Zeit" EPUBs and upload them to Tolino Cloud.
- Automated Download: Logs into "Die Zeit" Premium (via Selenium) and downloads the latest EPUB.
- Smart Download Check: Tracks downloaded issues in
download_history.jsonto prevent duplicates. - Cloud Upload: Automatically uploads the EPUB to Tolino Webreader.
- Test Mode: Includes a
--testflag to bypass history checks for local debugging. - Automated Execution: Configured for daily execution via GitHub Actions.
- Secure: Uses environment variables for credentials.
- Python 3.9+
- A "Die Zeit" Premium subscription.
- A Tolino account (specifically Thalia DE linked).
- Chrome (for local Selenium runs).
-
Clone the repository:
git clone <repository-url> cd zeit-transfer
-
Install dependencies:
pip3 install -r requirements.txt
-
Configure credentials: Create a
.envfile in the root directory:ZEIT_USER=your_email@example.com ZEIT_PASSWORD=your_password ZEIT_LOGIN_URL=https://login.zeit.de/ ZEIT_DOWNLOAD_URL=https://epaper.zeit.de/abo/diezeit/ TOLINO_USER=your_tolino_email TOLINO_PASSWORD=your_tolino_password
Checks download_history.json. If the current issue date matches the last downloaded one, valid execution stops early ("SKIPPED").
python3 -m src.mainIgnores the history check and forces a download/upload cycle. Useful for debugging or verifying fixes without resetting the history file manually.
python3 -m src.main --testThis repository includes a workflow .github/workflows/daily_transfer.yml that runs daily at 06:00 UTC.
It handles:
- Checking out the code.
- Setting up Python and Chrome.
- Running the script.
- Committing the updated
download_history.jsonback to the repository.
Required GitHub Secrets:
ZEIT_USERZEIT_PASSWORDZEIT_DOWNLOAD_URLZEIT_LOGIN_URLTOLINO_USERTOLINO_PASSWORD
- Login Failures: The script uses
undetected-chromedriverto bypass bot detection. If login fails, check the screenshots in the directory (if running locally) or the Action logs. - Timeouts: The script uses smart
WebDriverWait(up to 20s). If the site is exceptionally slow, these might need adjustment insrc/zeit_scraper.pyorsrc/tolino_uploader.py.
This tool is for personal use only. Use responsibly and respect the terms of service of the respective platforms.