Skip to main content

A simple Python-based tool to automate module downloads from Universitas Terbuka's Virtual Reading Room (RBV).

Project description

📕 RBV-DL — Module Downloader

RBV-DL Logo

Fast, asynchronous, and reliable module downloader for Universitas Terbuka (UT).

PyPI Version Python Versions Support License


📖 About

RBV-DL is a lightweight, asynchronous Python-based tool designed to automate authentication, retrieve module metadata, and concurrently download pages to compile them into high-quality PDFs.

With the introduction of the Hybrid Auth Bridge, RBV-DL now utilizes PyQt6 and QtWebEngine for a robust, seamless experience. The background auto-login system synchronizes sessions effortlessly between the CLI and GUI without requiring manual user intervention.

✨ Key Features

  • Smart Session Sync: CLI and GUI share the same authentication logic via the new auth_bridge.
  • Zero-Touch Login: Automatic background SSO handling—just input your course code and let the tool do the rest.
  • Asynchronous Core: Highly concurrent downloads ensuring maximum speed and efficiency.
  • Native GUI: A sleek, responsive, and native-feeling graphical interface built with PyQt6.
  • Lightweight Footprint: Efficient architecture without relying on heavy browser engines like Playwright.

⚙️ Prerequisites

To run RBV-DL, ensure your system meets the following requirements:

  • Python: Version 3.9 or higher.
    • Download from the official Python website.
    • Important: During installation (especially on Windows), ensure the "Add Python to PATH" option is checked.

🚀 Installation

Installing RBV-DL is straightforward and universal.

Open your terminal or command prompt and execute:

pip install rbv-ut-downloader

Note for Linux Users: We highly recommend using pipx for a cleaner, isolated environment:

pipx install rbv-ut-downloader

💻 Usage

Command-Line Interface (CLI)

To launch the CLI application, simply run:

rbv-dl

You will be prompted to provide:

  1. NIM / Email: Your UT account email.
  2. Password: Your E-Campus password (input is securely hidden).
  3. Course Code: The target module code (e.g., ADPU4433).

The tool will autonomously handle authentication, download the pages concurrently, and generate a final PDF within a directory named after the course code.

Graphical User Interface (GUI)

The new and improved GUI offers an intuitive, lightweight experience natively integrated into your OS. Simply launch the application via your application menu or command line, and follow the on-screen instructions for a seamless downloading process.


🛠️ Running from Source

If you wish to contribute or modify the tool locally:

1. Clone the repository

git clone https://codeberg.org/fyodor-dostoevsky-bit/rbv-dl.git
cd rbv-dl

2. Set up a virtual environment

python -m venv venv
# On Linux/macOS
source venv/bin/activate
# On Windows
venv\Scripts\activate

3. Install dependencies

pip install -r requirements.txt

4. Run the application

python app.py

🧪 Testing

RBV-DL includes a robust unit testing suite built with pytest to ensure stability across core components like the network rate limiter, chapter parsing, and image collection.

To run the tests:

  1. Ensure the virtual environment is active.
  2. Install test dependencies:
    pip install -r tests/requirements-test.txt
    
  3. Run the test suite:
    PYTHONPATH=. pytest
    

Example Output:

================================ test session starts =================================
platform linux -- Python 3.12.3, pytest-9.0.2, pluggy-1.6.0
rootdir: /media/dapa/HDD2/Ubuntu/Desktop/rbv-dl
configfile: pyproject.toml
testpaths: tests
plugins: mock-3.15.1, asyncio-1.3.0
asyncio: mode=Mode.STRICT, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function
collected 13 items                                                                   

tests/test_helper.py ...                                                       [ 23%]
tests/test_network.py ......                                                   [ 69%]
tests/test_pustaka_ut.py ....                                                  [100%]

================================= **13 passed** in 0.72s =================================

🐛 Troubleshooting

Issue Solution
Command not found or rbv-dl is not recognized Python is likely not correctly added to your system's PATH. Reinstall Python and ensure "Add Python to PATH" is selected during setup.
Installation fails on Python 3.14 pythonnet (a transitive dependency) does not yet support Python 3.14 on Windows. Use Python 3.11, 3.12, or 3.13 to install and run the application successfully.
Login Failed Verify your E-Campus password. Try logging in manually via the official RBV website to ensure your account is active and accessible.

⚖️ Disclaimer

Educational Purposes Only This tool was strictly developed for educational and archival purposes to help students back up their learning materials. The author shall not be held responsible for any misuse, policy violations, or unauthorized distribution of downloaded content. Please use it responsibly.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rbv_ut_downloader-0.1.4.tar.gz (30.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rbv_ut_downloader-0.1.4-py3-none-any.whl (34.5 kB view details)

Uploaded Python 3

File details

Details for the file rbv_ut_downloader-0.1.4.tar.gz.

File metadata

  • Download URL: rbv_ut_downloader-0.1.4.tar.gz
  • Upload date:
  • Size: 30.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for rbv_ut_downloader-0.1.4.tar.gz
Algorithm Hash digest
SHA256 cdde5196202b159f1cb2051456f9d15dff71a0aa11e4d2e596dd477964fe390e
MD5 855d1c52a96af42e535a827d79933b47
BLAKE2b-256 39a47fe757e5f0696cb18937798389c9f97ef23ab3810f8bbe3557ba7148a7f1

See more details on using hashes here.

File details

Details for the file rbv_ut_downloader-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for rbv_ut_downloader-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 897af96fbe02c7e478e8360f98b2265d5b83fd73d0fbf3a1a28af4eed3565667
MD5 2ec199c04068d0b6baf2376886ca5c87
BLAKE2b-256 74c6d743f6d4b044d6fa85af2f1f69afd7a98cb7507397a16d370fc0e3116a89

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page