Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/reza00farjam/rjdl

Python package to download Music, Video, Album, Podcast & Playlists from www.RadioJavan.com
https://github.com/reza00farjam/rjdl

downloader music-downloader radiojavan radiojavan-downloader radiojavandonwloader

Last synced: 3 months ago
JSON representation

Python package to download Music, Video, Album, Podcast & Playlists from www.RadioJavan.com

Awesome Lists containing this project

README

        

# rjdl

[![PyPI](https://img.shields.io/badge/pypi-v1.1.0-blue)](https://pypi.org/project/rjdl/) [![Python 3](https://img.shields.io/badge/python-3.10-blue)](https://pypi.org/project/rjdl/) [![Downloads](https://pepy.tech/badge/rjdl)](https://pepy.tech/project/rjdl) [![LICENSE](https://img.shields.io/badge/license-MIT-green)](https://github.com/reza00farjam/rjdl/blob/master/LICENSE) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/ea5df880a3fa4136824c887af12f4f38)](https://www.codacy.com/gh/reza00farjam/rjdl/dashboard?utm_source=github.com&utm_medium=referral&utm_content=reza00farjam/rjdl&utm_campaign=Badge_Grade) [![Documentation Status](https://readthedocs.org/projects/rjdl/badge/?version=latest)](https://rjdl.readthedocs.io/en/latest/?badge=latest)

* This package can be used in two different ways:
* If you want to use it as a downloader only, then you can simply use its CLI.
* But if you are a more advanced user and want to use this package in your projects, then you can import it in your project and you're good to go.
* With this package you will be able to save any **Music**, **Video (Music Video & RJ-TV Show)**, **Album**, **Podcast** and **Playlist** from [RadioJavan](https://www.radiojavan.com/) to your personal computer.
* *Podcasts* will be saved in **192 kbps** quality only, while you can choose between **256 kbps** and **320 kbps** for *Songs (Albums & Playlists as well)*, and **480p**, **720p** and **1080p** for *Videos* if available.
* If you are currently living in *Iran*, you need to turn on your **VPN** while using this package.

## Installation

* Use `pip install rjdl` to install the latest release of the package. (Of course to be able to use *pip*, you need python to be installed and added to computer's path first)
* If you want to install the latest version directly from GitHub, then you can use this:
`pip install git+git://github.com/reza00farjam/rjdl`

## Usage

### Command Line

The ```rjdl``` as a command, is a well behaved Unix style command line tool that provides you the following optional arguments to use based on the content of your url. You can also list them by running `rjdl -h` or `rjdl --help`:

```text
Usage: rjdl [OPTIONS] URLS...

Download Music, Video, Album, Podcast & Playlists from Radio Javan

URLs: Links of desired media.

Options:
--version Show the version and exit.
-p, --path DIRECTORY Download path [default: (current working
directory)]
-m, --music-quality [256|320] Download quality on Music, Album and
Playlist URLs [default: 320]
-v, --video-quality [480|720|1080]
Download quality on Video URLs [default:
720]
-i, --info Only show info about the URL
-h, --help Show this message and exit.
```

#### How it works

Simply, just pass rjdl a valid url along with your desired options for it and enjoy your download!
[Example](https://github.com/reza00farjam/rjdl/blob/61ffe179a944d196042071e7d2cefb26046c79e9/example.gif?raw=true).

##### Another simple example

```bash
rjdl "https://www.radiojavan.com/mp3s/mp3/Yas-Nameyi-Be-Farzand"
```

### Script

The rjdl as a package, provides enough class and methods to work with RadioJavan for your
development purposes. For a good understanding of what it does and how it works, you can take a look at
[rjdl documentation](https://rjdl.readthedocs.io/en/latest/).

## Development Setup

To start developing rjdl, you need to install a recent version of python and pip and then run the following commands (for linux):

```bash
git clone https://github.com/reza00farjam/rjdl
cd rjdl
python3 -m venv .venv
source .venv/bin/activate
pip install -e .[dev]
```

### Code Style

Keeping to a consistent code style throughout the project makes it easier to contribute and collaborate.

We enforce the following check for all PRs:

```bash
tox -e flake8
```

## Contributing

* Contributions of all sizes are welcomed and precious. You can follow the steps below for this purpose:
* [Fork](https://github.com/reza00farjam/rjdl/fork) the repository.
* Make all the changes you want to see in the original repository.
* Push your changes to a new branch in your fork and [create a pull request](https://github.com/reza00farjam/rjdl/compare) along with an explanation of your changes.
* Also you can help us by [reporting bugs and sharing your ideas](https://github.com/reza00farjam/rjdl/issues/new).

## Copyright & License

* Copyright (C) 2020-2021 Reza Farjam <>
* Licensed under the terms of the [MIT License](https://github.com/reza00farjam/rjdl/blob/master/LICENSE).