Metadata-Version: 2.4
Name: multidl
Version: 2.1.2
Summary: A cli tool for downloading media from various platforms.
Project-URL: Homepage, https://github.com/swayam25/Multi-DL
Project-URL: GitHub, https://github.com/swayam25/Multi-DL
Author: Swayam
License-Expression: GPL-3.0
License-File: LICENSE
Requires-Python: >=3.13
Requires-Dist: aiohttp>=3.11.18
Requires-Dist: click>=8.2.0
Requires-Dist: ffmpeg>=1.4
Requires-Dist: mutagen>=1.47.0
Requires-Dist: platformdirs>=4.3.8
Requires-Dist: pyfiglet>=1.0.2
Requires-Dist: rich>=14.0.0
Requires-Dist: spotipy>=2.25.1
Requires-Dist: toml>=0.10.2
Requires-Dist: trogon>=0.6.0
Requires-Dist: typer>=0.15.3
Requires-Dist: yt-dlp>=2025.11.12
Description-Content-Type: text/markdown

<div align="center">

![Multi DL](https://github.com/swayam25/Multi-DL/raw/main/assets/banner.png)

A cli tool for downloading media from various platforms

</div>

## 🎯 Features

- Obtain information about any video, music, playlist, album, channel, etc...
- Ability to download whole youtube channel.
- Supports parallel downloads.
- Supports beautiful search system for downloading and obtaining information.

## 🚩 Installation

> [!IMPORTANT]
> You must have `FFmpeg` installed on your system. You can download it from [here](https://ffmpeg.org/download.html).
> Python v3.13 or higher is required.

- Official Packages
    | OS  | Repository                               | Command                   |
    | --- | ---------------------------------------- | ------------------------- |
    | Any | [PyPI](https://pypi.org/project/multidl) | `pip install multidl`     |
    | Any | [PyPI](https://pypi.org/project/multidl) | `uv tool install multidl` |

- Community Packages
    | OS         | Repository                                                                                       | Command          |
    | ---------- | ------------------------------------------------------------------------------------------------ | ---------------- |
    | Arch Linux | [AUR](https://aur.archlinux.org/packages/multidl) (*by [`Daniel`](https://github.com/booo2233)*) | `yay -S multidl` |


## ⚙️ Configuration

- Default Config File Path
    - Linux: `~/.config/multidl/config.toml`
    - MacOS: `~/Library/Application Support/multidl/config.toml`
    - Windows: `%APPDATA%/multidl/config.toml`

- Config file path can be overridden by setting the `MULTIDL_CONFIG` environment variable.

- Config file structure
    ```toml
    spotify-tos = true # Set to true if you have accepted Spotify's TOS

    [spotify-credentials]
    client-id = ""
    client-secret = ""
    ```

- Run the following command for more information
    ```sh
    multidl config --docs
    ```

## ❤️ Contributing

- Things to keep in mind
    - Follow our commit message convention.
    - Write meaningful commit messages.
    - Keep the code clean and readable.
    - Make sure the app is working as expected.

- Use [`uv`](https://docs.astral.sh/uv/) package manager for development.

- Setup `pre-commit` hooks
    ```sh
    pre-commit install
    ```
