About this project
open-Xdownload is a local-first X/Twitter media downloader with a built-in Web UI and background task queue. It supports four task types—single posts, users, lists, and followed accounts—and offers batch tasks, scheduled plans, incremental archiving, failure retry, and a cookie pool for API rate-limit rotation.
Key capabilities:
- Single-post parsing & download: Paste an x.com or twitter.com link to parse text, author, and media list, then download the best available version of each image, video, or GIF.
- User media archiving: Archive media from a user's timeline by username, @handle, or user ID.
- List archiving: Enter an X list ID to fetch members and archive their media.
- Followed-account archiving: Fetch accounts a target follows and archive media from those accounts.
- Batch tasks: Enter up to 200 targets (users, lists, followed accounts) at once with automatic deduplication.
- Scheduled plans: Save targets as recurring archiving plans with configurable intervals (5–43200 minutes).
- Incremental archiving: Resume from the last successful position on repeat runs; skip already-downloaded media.
- Failure handling: Partial failures are clearly marked; failed posts enter a retry queue that can be retried manually or auto-retried on task completion.
- Cookie pool: Primary cookie plus multiple backup groups for rate-limit rotation during batch archiving.
- Media library: Browse downloaded media by image, video, or GIF category; search file names, media URLs, and post IDs; lazy-loaded previews with keyboard navigation.
- Lightweight previews: Images lazy-load; videos load only a poster thumbnail by default, mounting the player only in the enlarged preview.
- Local directory storage: Download directory configurable via UI or CLI, with browsable, creatable paths.
Deployment options:
- Docker Compose (recommended): Ports 127.0.0.1:8787, volumes for data and downloads, configurable PUID/PGID.
- Docker run: Same environment variables, manual invocation.
- Binary: Download from Releases; listens on 127.0.0.1:8787 by default, with configurable addr, data-dir, web-dir, and download-dir flags.
The service has no built-in authentication and binds to localhost by default. LAN access requires explicitly setting the address to 0.0.0.0:8787 and placing the service behind an authenticating reverse proxy.
Data is stored in a SQLite database (open-xdownload.db) and local download directories. Sensitive fields (cookies) are masked in the UI. Backups should include both the database and download directory.
License: MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.