# 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.
- [ ] Include support for VLC
## 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": "pytorr-play",
"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/8e/dd/cfc0769333f14b4090fe6953a0efba89b5f8f03978c9c2e8e777a27f0dcd/pytorr_play-0.0.1.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- [ ] Include support for VLC\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.1",
"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": "969b0c2adac542a5eade9737c050db6a0edf56d153347f5438fac39612f3465a",
"md5": "5a6e0777e03cea9566878cc14b7a4f9b",
"sha256": "d0795188635fa8010678595393b5209bbd91f2ab064eb216e9eeacc946c53d6a"
},
"downloads": -1,
"filename": "pytorr_play-0.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5a6e0777e03cea9566878cc14b7a4f9b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.11,>=3.10",
"size": 9390,
"upload_time": "2024-05-25T13:14:15",
"upload_time_iso_8601": "2024-05-25T13:14:15.004777Z",
"url": "https://files.pythonhosted.org/packages/96/9b/0c2adac542a5eade9737c050db6a0edf56d153347f5438fac39612f3465a/pytorr_play-0.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8eddcfc0769333f14b4090fe6953a0efba89b5f8f03978c9c2e8e777a27f0dcd",
"md5": "c33db3f4910f551b93007ebf3b80f13a",
"sha256": "ff66272c6e65d35a7714dba5c04b9e5acc01d668efd5c10ca3cfbf09b5101526"
},
"downloads": -1,
"filename": "pytorr_play-0.0.1.tar.gz",
"has_sig": false,
"md5_digest": "c33db3f4910f551b93007ebf3b80f13a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.11,>=3.10",
"size": 8733,
"upload_time": "2024-05-25T13:14:17",
"upload_time_iso_8601": "2024-05-25T13:14:17.309062Z",
"url": "https://files.pythonhosted.org/packages/8e/dd/cfc0769333f14b4090fe6953a0efba89b5f8f03978c9c2e8e777a27f0dcd/pytorr_play-0.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-25 13:14:17",
"github": false,
"gitlab": true,
"bitbucket": false,
"codeberg": false,
"gitlab_user": "imithrellas",
"gitlab_project": "PyTorr-Play",
"lcname": "pytorr-play"
}