🎬 Doode: DoodStream CLI, API Client, Url link Generator
A feature-rich, user-friendly command-line interface and Python API client for DoodStream — with real-time progress bars, clipboard integration, IDM support (Windows), and comprehensive error handling.
✨ Features
- ✅ Full DoodStream API coverage: account, files, folders, remote upload, DMCA, reports
- 📊 Real-time monitoring of remote uploads with live progress bar (% complete, ETA)
- 🔗 Generate direct download links from DoodStream shareable URLs
- 💾 Local file upload with progress tracking
- 🖥️ IDM integration (Windows only) for one-click downloads
- 📋 Auto-copy to clipboard for generated download links
- 🎨 Beautiful terminal UI powered by Rich
- 🛡️ Robust error handling with clear, actionable messages
- 🧪 Dual usage: as a CLI tool or as a Python library
- 📚 Comprehensive documentation with examples for every method
📦 Installation
Prerequisites
- Python 3.7 or higher
- A DoodStream API key (free account required)
Install via pip
pip install doode
Note: If installing from source, clone this repo and run:
pip install -r requirements.txt
Optional Dependencies
- Windows users: Install IDM for direct download integration.
- Debug mode: Install
pydebuggerif you plan to use debug features.
🔑 Authentication
You must provide your DoodStream API key in one of two ways:
1. Environment Variable (Recommended)
export DOOD_API_KEY="your_api_key_here"
2. Command-Line Flag
dood --api-key "your_api_key_here" account info
💡 The environment variable method is preferred for security and convenience.
🚀 Quick Start
Generate a Download Link
dood generate "https://dood.li/abc123xyz" -v -c
-v: Verbose output (shows download URL in a styled panel)-c: Copy URL to clipboard automatically
Upload a Video Remotely
dood remote upload "https://example.com/video.mp4" --new-title "My Movie"
This starts the upload and monitors it in real-time with a live progress bar!
Upload from Local Disk
dood upload local ./my_video.mp4
View Account Info
dood account info
🧰 Full Command Reference
Account Management
| Command | Description |
|---|---|
dood account info |
Show account details (email, balance, storage) |
dood account reports --last 7 |
Get usage stats for last 7 days |
dood account reports --from-date 2025-01-01 --to-date 2025-01-31 |
Custom date range report |
Remote Upload
| Command | Description |
|---|---|
dood remote upload <URL> |
Start remote upload |
dood remote upload <URL> --new-title "Title" |
Upload with custom name |
dood remote upload <URL> --no-monitor |
Start upload without monitoring |
dood remote status <file_code> |
Check status of a specific upload |
dood remote list |
List all remote upload jobs |
dood remote slots |
Show available upload slots |
dood remote action --restart-errors |
Restart all failed uploads |
dood remote action --delete-code abc123 |
Delete a specific upload job |
🔍 Real-time monitoring shows:
- Current download percentage
- Estimated time remaining
- Automatic success/failure detection
File Management
| Command | Description |
|---|---|
dood files list |
List all files |
dood files list --fld-id folder123 |
List files in a folder |
dood files info abc123 |
Get detailed file info |
dood files rename abc123 "New Title" |
Rename a file |
dood files search "vacation" |
Search files by title |
Folder Management
| Command | Description |
|---|---|
dood folders create "Movies" |
Create a new folder |
dood folders create "Sub" --parent-id folder123 |
Create subfolder |
dood folders rename folder123 "Renamed" |
Rename a folder |
DMCA & Uploads
| Command | Description |
|---|---|
dood dmca list |
List DMCA-reported files |
dood upload local ./video.mp4 |
Upload local file |
📊 Real-Time Upload Monitoring
When you run a remote upload, you’ll see a live progress bar like this:
⠴ Uploading... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42% 0:02:15
- Automatically detects completion or failure
- Updates every 3 seconds
- Supports keyboard interrupt (Ctrl+C to stop monitoring)
- Times out after 1 hour (configurable)
🛠️ Requirements
requestsbeautifulsoup4lxmlrichrich-argparseconfigsetpyperclip(for clipboard)licface(custom help formatter)requests-toolbelt(for local upload progress)
All dependencies are installed automatically via
pip.
🐞 Error Handling & Debugging
Common Errors
| Error | Solution |
|---|---|
Invalid API key |
Check your API key at DoodStream Settings |
File not found |
Ensure local file path is correct |
Unsupported video format |
Use: mp4, mkv, avi, mov, webm, etc. |
Network error |
Check internet connection or DoodStream status |
Debug Mode
Set environment variable to enable debug output:
export DEBUG=1
dood generate "https://dood.li/abc123"
Requires
pydebuggerto be installed.
📜 License
see the LICENSE file for details.
🙌 Acknowledgements
- DoodStream for their API
- Rich for beautiful terminal rendering
- requests & BeautifulSoup for HTTP and parsing
Note: This tool is unofficial and not affiliated with DoodStream. Use responsibly and in compliance with their Terms of Service.
author
Metadata
Release files for doode 0.48.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| doode-0.48.3-cp313-cp313-win_amd64.whl | CPython 3.13 | CPython 3.13 | Windows x86-64 | Details |
| doode-0.48.3-cp312-cp312-win_amd64.whl | CPython 3.12 | CPython 3.12 | Windows x86-64 | Details |
| doode-0.48.3-cp311-cp311-win_amd64.whl | CPython 3.11 | CPython 3.11 | Windows x86-64 | Details |
| doode-0.48.3-cp310-cp310-win_amd64.whl | CPython 3.10 | CPython 3.10 | Windows x86-64 | Details |
| doode-0.48.3-cp39-cp39-win_amd64.whl | CPython 3.9 | CPython 3.9 | Windows x86-64 | Details |
Total release size: 685.2 kB
Release files / doode-0.48.3-cp313-cp313-win_amd64.whl
| Download URL | doode-0.48.3-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 130.4 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
02597217ef3147b480c33f9fcdbbaa5bc04ac334e3255fbe18893ae2d704143e
|
|
BLAKE2b-256 checksum How to use checksums |
c3f222168871fe4316c3e72e7af51072e6a188770798a9964d6938b75bead459
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.4
|
Release files / doode-0.48.3-cp312-cp312-win_amd64.whl
| Download URL | doode-0.48.3-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 131.1 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
365d2689f6a7f124f93c8a2165767630b789507ee281151b9b799adc4c5db85d
|
|
BLAKE2b-256 checksum How to use checksums |
f73f9e440decdf6be7fa455ff119af273eb977b3ba5e434189087c47d72f1dd1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.4
|
Release files / doode-0.48.3-cp311-cp311-win_amd64.whl
| Download URL | doode-0.48.3-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 139.3 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
5a695b43cb1a7725b4a228b33fcd8caaec3218645f6ae159fc075a2ac70a6c3a
|
|
BLAKE2b-256 checksum How to use checksums |
1f3d6d9a33226f26b242762dadbdf1ecb26aac280d6d2d5478974fb94057f94a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.4
|
Release files / doode-0.48.3-cp310-cp310-win_amd64.whl
| Download URL | doode-0.48.3-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 138.2 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f97c8e9abc57af7f559a00d2845cd2ec44067ef19076c7a0043bc6adb2e06f1d
|
|
BLAKE2b-256 checksum How to use checksums |
2d9a5f16ea5ff8d9cb8d48cc8af7f75af9738e4d9f481e23fcec4baeb945644f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.4
|
Release files / doode-0.48.3-cp39-cp39-win_amd64.whl
| Download URL | doode-0.48.3-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 146.1 kB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
603d7bf5fffed519c96acd06fa337120c2f91807a5ff4429754cd35798de4fdc
|
|
BLAKE2b-256 checksum How to use checksums |
f87b9f5bb28577a458e8c9f4afd1a5843ca890af1b4266584be1d548ff9b9f9d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.4
|