pytorrplay


Namepytorrplay JSON
Version 0.0.3 PyPI version JSON
download
home_pagehttps://gitlab.com/imithrellas/PyTorr-Play
SummaryTool for streaming videos from torrrents
upload_time2024-05-27 22:46:25
maintainerNone
docs_urlNone
authorimithrellas
requires_python<3.11,>=3.10
licenseMIT
keywords torrent jackett curses rofi mpv media
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # PyTorr-Play

PyTorr-Play is a Python tool for searching torrents using the Jackett API, displaying results using `curses`/`rofi`, and downloading and playing the selected torrents using `mpv`.

## Features

- Search for torrents using the Jackett API.
- Display search results in a `curses`/`rofi` menu.
- Select and download torrents.
- Play downloaded torrents with `mpv` (or VLC, with `webtorrent-cli`).
- Maintain a history of downloaded torrents.

## Preview

[Watch the video on YouTube](https://youtu.be/7vZOBZaLPOk)

## Installation

### Using `pipx`

`pipx` allows you to install and run Python applications in isolated environments.

1. **Install pipx (if not already installed):**

    ```sh
    python -m pip install --user pipx
    python -m pipx ensurepath
    ```

2. **Install PyTorr-Play:**

    ```sh
    pipx install pytorr-play
    ```

### From Source

1. **Clone the repository:**

    ```sh
    git clone https://gitlab.com/imithrellas/pytorr-play.git
    cd pytorr-play
    ```

2. **Install Poetry (if not already installed):**

    ```sh
    curl -sSL https://install.python-poetry.org | python3 -
    ```

3. **Install dependencies:**

    ```sh
    poetry install
    ```

4. **Install system dependencies:**

    - `Jackett`: [Refer to instalation and setup steps on Jackett GitHub page](https://github.com/Jackett/Jackett)
    - `webtorrent`: A streaming torrent client for the web. (Only needed for VLC, subject to change)
    - `mpv`: A media player based on MPlayer and mplayer2.

    Use your package manager to install these dependencies:

    ```sh
    sudo pacman -S mpv
    ```

5. **Activate the virtual environment:**

    ```sh
    poetry shell
    ```

## Configuration

### Generate the Default Configuration File

```sh
pytorr-play --generate-config
```

This will create a configuration file at `~/.config/torrent_watcher/config.yaml` with the following content:

```yaml
JACKETT_API_KEY: "your_api_key_here"
JACKET_PORT: 9117
JACKET_ADDRESS: "127.0.0.1"
```

### Edit the Configuration File

Replace `your_api_key_here` with your actual Jackett API key.

## Usage

### Search for Torrents

```sh
pytorr-play
```

This will prompt you to enter a search query and display the results in a `curses` menu.
Alternatively you can use Rofi, if you have it installed on your system.

```sh
pytorr-play --ui Rofi
```

### Show Torrent History

```sh
pytorr-play --history
```

This will display a table of previously downloaded torrents.

### Use a Custom Configuration File

```sh
pytorr-play --config /path/to/your/config.yaml
```

This allows you to specify a custom configuration file path.

## Arguments

- `-h`/`--help`: Show help.
- `--generate-config`: Generate the default configuration file.
- `--config <path>`: Specify a custom configuration file path.
- `--history`: Show torrent history.
- `--ui`: Choose UI (Curses/Rofi).

## Example

```sh
pytorr-play --config /home/user/custom_config.yaml
```

## Plans

- [x] Omit Webtorrent
- [x] Find a way to include timestamp in the history to be able to resume play.
- [x] Find a way to play multiple files in a playlist
  - [ ] Implement a way for the app to know when user switches to a different file in the playlist(Using a callback MPV function?)
- [ ] Implement a menu where the user can choose which files to play
  - [ ] List files available
  - [ ] Allow selection of multiple files
  - [ ] Allow selection of a range of files
- [ ] Include support for VLC(Recreate all of MPVs functionality)

## Contributing

Feel free to open issues or submit pull requests for improvements or bug fixes.

## Legal Disclaimer

Neither I nor this tool promote or condone the distribution or consumption of illegal content via torrents. This tool is intended solely for legal uses, such as downloading and sharing open-source software, public domain content, and other legally distributable files. Users are responsible for ensuring that their usage complies with all applicable laws and regulations.

            

Raw data

            {
    "_id": null,
    "home_page": "https://gitlab.com/imithrellas/PyTorr-Play",
    "name": "pytorrplay",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.11,>=3.10",
    "maintainer_email": null,
    "keywords": "torrent, jackett, curses, rofi, mpv, media",
    "author": "imithrellas",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/62/dd/ad7950210d44dd82901151b797019ec5b61ac15b86bf8b22c428a59fc8f1/pytorrplay-0.0.3.tar.gz",
    "platform": null,
    "description": "# PyTorr-Play\n\nPyTorr-Play is a Python tool for searching torrents using the Jackett API, displaying results using `curses`/`rofi`, and downloading and playing the selected torrents using `mpv`.\n\n## Features\n\n- Search for torrents using the Jackett API.\n- Display search results in a `curses`/`rofi` menu.\n- Select and download torrents.\n- Play downloaded torrents with `mpv` (or VLC, with `webtorrent-cli`).\n- Maintain a history of downloaded torrents.\n\n## Preview\n\n[Watch the video on YouTube](https://youtu.be/7vZOBZaLPOk)\n\n## Installation\n\n### Using `pipx`\n\n`pipx` allows you to install and run Python applications in isolated environments.\n\n1. **Install pipx (if not already installed):**\n\n    ```sh\n    python -m pip install --user pipx\n    python -m pipx ensurepath\n    ```\n\n2. **Install PyTorr-Play:**\n\n    ```sh\n    pipx install pytorr-play\n    ```\n\n### From Source\n\n1. **Clone the repository:**\n\n    ```sh\n    git clone https://gitlab.com/imithrellas/pytorr-play.git\n    cd pytorr-play\n    ```\n\n2. **Install Poetry (if not already installed):**\n\n    ```sh\n    curl -sSL https://install.python-poetry.org | python3 -\n    ```\n\n3. **Install dependencies:**\n\n    ```sh\n    poetry install\n    ```\n\n4. **Install system dependencies:**\n\n    - `Jackett`: [Refer to instalation and setup steps on Jackett GitHub page](https://github.com/Jackett/Jackett)\n    - `webtorrent`: A streaming torrent client for the web. (Only needed for VLC, subject to change)\n    - `mpv`: A media player based on MPlayer and mplayer2.\n\n    Use your package manager to install these dependencies:\n\n    ```sh\n    sudo pacman -S mpv\n    ```\n\n5. **Activate the virtual environment:**\n\n    ```sh\n    poetry shell\n    ```\n\n## Configuration\n\n### Generate the Default Configuration File\n\n```sh\npytorr-play --generate-config\n```\n\nThis will create a configuration file at `~/.config/torrent_watcher/config.yaml` with the following content:\n\n```yaml\nJACKETT_API_KEY: \"your_api_key_here\"\nJACKET_PORT: 9117\nJACKET_ADDRESS: \"127.0.0.1\"\n```\n\n### Edit the Configuration File\n\nReplace `your_api_key_here` with your actual Jackett API key.\n\n## Usage\n\n### Search for Torrents\n\n```sh\npytorr-play\n```\n\nThis will prompt you to enter a search query and display the results in a `curses` menu.\nAlternatively you can use Rofi, if you have it installed on your system.\n\n```sh\npytorr-play --ui Rofi\n```\n\n### Show Torrent History\n\n```sh\npytorr-play --history\n```\n\nThis will display a table of previously downloaded torrents.\n\n### Use a Custom Configuration File\n\n```sh\npytorr-play --config /path/to/your/config.yaml\n```\n\nThis allows you to specify a custom configuration file path.\n\n## Arguments\n\n- `-h`/`--help`: Show help.\n- `--generate-config`: Generate the default configuration file.\n- `--config <path>`: Specify a custom configuration file path.\n- `--history`: Show torrent history.\n- `--ui`: Choose UI (Curses/Rofi).\n\n## Example\n\n```sh\npytorr-play --config /home/user/custom_config.yaml\n```\n\n## Plans\n\n- [x] Omit Webtorrent\n- [x] Find a way to include timestamp in the history to be able to resume play.\n- [x] Find a way to play multiple files in a playlist\n  - [ ] Implement a way for the app to know when user switches to a different file in the playlist(Using a callback MPV function?)\n- [ ] Implement a menu where the user can choose which files to play\n  - [ ] List files available\n  - [ ] Allow selection of multiple files\n  - [ ] Allow selection of a range of files\n- [ ] Include support for VLC(Recreate all of MPVs functionality)\n\n## Contributing\n\nFeel free to open issues or submit pull requests for improvements or bug fixes.\n\n## Legal Disclaimer\n\nNeither I nor this tool promote or condone the distribution or consumption of illegal content via torrents. This tool is intended solely for legal uses, such as downloading and sharing open-source software, public domain content, and other legally distributable files. Users are responsible for ensuring that their usage complies with all applicable laws and regulations.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Tool for streaming videos from torrrents",
    "version": "0.0.3",
    "project_urls": {
        "Homepage": "https://gitlab.com/imithrellas/PyTorr-Play",
        "Repository": "https://gitlab.com/imithrellas/PyTorr-Play"
    },
    "split_keywords": [
        "torrent",
        " jackett",
        " curses",
        " rofi",
        " mpv",
        " media"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5af440daec34c50be3fb4e6b6fa322d43427a5d22a1f21cbbe0049843a56d6ac",
                "md5": "1fb5716d690c18b9e9b40ac0627bd38f",
                "sha256": "618fda39905cf2b85d48e26c7efa630ae07afab7bc8b3d7166624e6d2f75909b"
            },
            "downloads": -1,
            "filename": "pytorrplay-0.0.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "1fb5716d690c18b9e9b40ac0627bd38f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.11,>=3.10",
            "size": 10007,
            "upload_time": "2024-05-27T22:46:24",
            "upload_time_iso_8601": "2024-05-27T22:46:24.036419Z",
            "url": "https://files.pythonhosted.org/packages/5a/f4/40daec34c50be3fb4e6b6fa322d43427a5d22a1f21cbbe0049843a56d6ac/pytorrplay-0.0.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "62ddad7950210d44dd82901151b797019ec5b61ac15b86bf8b22c428a59fc8f1",
                "md5": "bb3378404294bd335a40e4a66d9a32dc",
                "sha256": "c47b72983d85f570f2f23fe5eb5233c769de5eb568e7a610eadddb1e7d529b54"
            },
            "downloads": -1,
            "filename": "pytorrplay-0.0.3.tar.gz",
            "has_sig": false,
            "md5_digest": "bb3378404294bd335a40e4a66d9a32dc",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.11,>=3.10",
            "size": 9548,
            "upload_time": "2024-05-27T22:46:25",
            "upload_time_iso_8601": "2024-05-27T22:46:25.256937Z",
            "url": "https://files.pythonhosted.org/packages/62/dd/ad7950210d44dd82901151b797019ec5b61ac15b86bf8b22c428a59fc8f1/pytorrplay-0.0.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-27 22:46:25",
    "github": false,
    "gitlab": true,
    "bitbucket": false,
    "codeberg": false,
    "gitlab_user": "imithrellas",
    "gitlab_project": "PyTorr-Play",
    "lcname": "pytorrplay"
}
        
Elapsed time: 1.43812s