Skip to main content

A simple downloader videos from maktabkhooneh

Project description

maktab-dl

maktabkhooneh downloader A command-line tool to download videos from Maktabkhooneh courses.

Installation

  1. Install using pip

    pip install maktab-dl
    
  2. Clone the Repository (Optional):

    If you have access to the repository, you can clone it:

    > git clone https://github.com/softrebel/maktab-dl.git
    > cd maktab-dl
    > pip install .
    

Usage

The maktab-dl tool provides a download subcommand for downloading course videos.

maktab-dl download [options]

Command

  • download: This subcommand is used to download course videos.

Options

The download subcommand accepts the following options:

  • -u, --url (Required): The URL of the Maktabkhooneh course page.
  • -c, --cookies (Optional): The path to the cookies file. Defaults to a cookies.json file in a suitable user data directory as specified by appdirs package.
  • -o, --output (Optional): The path to the output directory where videos will be saved. Defaults to the current directory the script is called from.

Examples

Here are some examples of how to use maktab-dl:

  1. Basic Download with Default Options:

    If you have saved cookies, it will automatically use it to download the course video. This will save the course in the current directory

    maktab-dl download -u <your_course_url>
    

    for example:

    maktab-dl download -u https://maktabkhooneh.org/course/آموزش-سی-شارپ-c-mk9558/
    
  2. Download with custom cookies and output directories:

    maktab-dl download -u <your_course_url> -c /path/to/my/cookies.json -o /path/to/my/output
    
  3. First time login and save cookies:

    If you run this command and cookies file does not exist in the defined path, it will ask username, password, and confirmation to save cookies.

    maktab-dl download -u <your_course_url> -c /path/to/my/cookies.json
    
  4. When cookies is not valid:

    If you run the script with invalid cookie file, it will ask you to login again

    maktab-dl download -u <your_course_url> -c /path/to/my/invalid_cookie.json
    
  5. Using relative path for cookies

    maktab-dl download -u <your_course_url> -c ./my_cookies.json -o ./videos
    

    This command will save the cookies in current directory and video in the videos subdirectory.

  6. Help Message:

    To see the available options and usage information, run:

    maktab-dl download --help
    

    or

     maktab-dl --help
    

Explanation

First time Login

  • If you run the script with a cookies file path that does not exist, it will prompt you for your Maktabkhooneh username and password.
  • After logging in successfully, it will ask you if you would like to save the cookies to the specified path.
  • Subsequent executions can reuse the saved cookie to make the script work seamlessly.
  • If cookies are present but not valid it will ask you to relogin.

Default Paths

  • Cookies File: If you don't provide the path to the cookies file, it will save cookies.json to suitable user data directory. The exact location will depend on your operating system (Linux, macOS, or Windows). The location is handled by appdirs package.
  • Output Directory: If you don't specify the output directory, it will save the video in the current directory the command was run from.

Error Handling

  • The script includes basic error handling to catch exceptions that might happen during the downloading process. The error is printed to console with descriptive message.
  • You will be informed if cookies file can not be found or invalid.
  • If the course does not have any video, it will log the message into console.

Dependencies

  • httpx: Used for making HTTP requests.
  • pydantic: Used for validating response params.
  • tqdm: Used for display download progress bar in output.
  • lxml: Used for parsing HTML content.

Important Notes

  • This script requires a Maktabkhooneh account and access to specific course to download it.
  • The script will create output directory automatically when you are saving videos there.

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

maktab_dl-0.5.0.tar.gz (14.8 kB view details)

Uploaded Source

Built Distribution

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

maktab_dl-0.5.0-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

File details

Details for the file maktab_dl-0.5.0.tar.gz.

File metadata

  • Download URL: maktab_dl-0.5.0.tar.gz
  • Upload date:
  • Size: 14.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.25

File hashes

Hashes for maktab_dl-0.5.0.tar.gz
Algorithm Hash digest
SHA256 2a043e86cc2c361bba69df5dd1d258a34e7ff7388753c4a09ae9f31ebaaeb444
MD5 204256c855f3613ef861d46198aecfb5
BLAKE2b-256 7ae3d6048f817ea0fa602dada5d1cf18b48a9674acffc069b44ecab2f8ce353c

See more details on using hashes here.

File details

Details for the file maktab_dl-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: maktab_dl-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 14.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.25

File hashes

Hashes for maktab_dl-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f10ee36d6ada4b2b0022290359474bd5cb98acdac7a9811f053d708af2e82bbe
MD5 e6e0e8b112bb158e1e66882ee569534a
BLAKE2b-256 a4a735f1409f03478cfa68fd3a41a1c99759ed710224320a7bb8915d9caf6c8a

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