Simple tool to save Scribd documents and embeds as PDF files.
Scribd Downloader (scribdl-py) is a CLI tool that helps you save Scribd documents and embeds into high-quality PDF files for offline reading. It uses a headless browser engine with Smart Waiting to capture every page accurately and smoothly.
This tool is intended for personal archival of documents you already have legal access to. Please respect Scribd's Terms of Service and the intellectual property of the authors. The developers are not responsible for any misuse of this tool.
- Smart Waiting: Automatically verifies image assets and rendering status before capturing each page to prevent blank/white output.
- Auto-Organized Output: Downloaded PDFs are neatly saved into the
output/folder by default. - Safe Naming: Automatically sanitizes filenames so they work flawlessly across Windows, Mac, and Linux.
- Reliable Cleanup: Temporary files are handled safely and automatically cleaned up, even if you stop the script midway.
- High Quality: Saves pages in HD for better reading and printing.
- Pick Pages: Download the whole file or just specific pages (e.g.,
1-10). - Join PDF: Combines all captured pages into a single, clean PDF file.
- History Log: Keeps a record of each download in
history.json.
-
Clone & Setup Environment
git clone https://github.com/coflyn/scribdl-py.git cd scribdl-py python3 -m venv venv source venv/bin/activate
-
Install Requirements
pip install -r requirements.txt playwright install chromium
Simply run the script with the document URL:
python main.py <enter>
# or
python main.py "SCRIBD_URL"CLI Options:
-o, --output: Custom output filename.-p, --pages: Page selection (all,3, or1-10).-d, --delay: Custom extra delay per page in seconds (e.g.,0.5).-s, --scale: Scale factor (1for SD,2for HD).-q, --quiet: Disable progress output (silent mode).
Example:
python main.py "https://www.scribd.com/document/402293816/Technics-SA-EH550-pdf" --pages "1-10" --delay 0.5You can set permanent default options in config.ini so you don't need to specify CLI flags every time:
[SETTINGS]
# Baseline extra delay per page capture in seconds (default: 0.5)
delay = 0.5
# Scale factor for page capture (2 = HD quality, 1 = Standard quality)
scale = 2
# Default output filename (Leave empty to auto-detect document title)
output = - Scribd Document
- Scribd Embeds
Contributions, issues, and feature requests are welcome! Feel free to check the issues page if you want to contribute.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Don't forget to give a ⭐ if you find this project useful!
Found a bug, broken link extraction, or script error? Please feel free to open an issue with the error traceback and the target URL:
This project is licensed under the MIT License. See the LICENSE file for details.