A CLI tool to download recordings from Fetch TV boxes using UPnP.
Project description
fetchtv-cli
A CLI tool to download recordings from Fetch TV boxes using UPnP.
This is a fork of the original project called FetchTV-Helpers.
Introduction
This tool allows you to download recordings from Fetch TV boxes.
It can also be used to query recording information on the Fetch TV box.
Installation
The recommended way to install fetchtv-cli is to use pipx.
After getting pipx installed, simply run:
pipx install fetchtv-cli
Please don't use pip system-wide.
You can of course also install it using classic virtualenvs.
Features
- Autodiscover Fetch TV DLNA box
- View box information
- List all recordings, or matches for specified shows or titles
- Save only new recordings, or save everything that matches shows or titles
- Get responses as JSON. This includes additional item attributes, e.g. file size, duration, type (episode or movie), description
- List recordings in a pretty table view
Notes/quirks
It seems that Fetch do not reveal if a recording is deleted (actually only marked for deletion), via the DLNA returned.
I've scoured the XML, tried different filters etc -- nothing works. They must be keeping that flag in a different database, of which the status isn't reflected in the XML/DLNA. This means that you'll see all recordings on the box, deleted or not, and if the state JSON goes missing, will probably be re-downloaded in certain situations.
Usage
fetchtv [COMMANDS] [OPTIONS]
Examples
- Display Fetch box details
fetchtv --info - List all available recorded shows (doesn't include episodes)
fetchtv --recordings --ip 192.168.1.10 --shows
- List only recordings that haven't been saved
fetchtv --recordings --new --ip 192.168.1.10
- Return responses as JSON
fetchtv --recordings --json --ip 192.168.1.10
- List all available recorded items (all shows and episodes) in the default table view
fetchtv --recordings --ip 192.168.1.10
- List all available recorded items (all shows and episodes) in a flatter view
fetchtv --recordings --ip 192.168.1.10 --no-table
- Save any new recordings to C:\Temp
fetchtv --recordings --ip 192.168.1.10 --save "C:\\temp"
- Save any new recordings to /tmp
fetchtv --recordings --ip 192.168.1.10 --save /tmp
- Save any new recordings to C:\Temp apart from 60 Minutes
fetchtv --recordings --ip 192.168.1.10--save "C:\\temp" --exclude "60 Minutes"
- Save any new episodes for the show 60 Minutes to C:\Temp
fetchtv --recordings --ip 192.168.1.10 --folder "60 Minutes" --save "C:\\temp"
- Save episode containing 'S4 E12' for the show 60 Minutes to C:\Temp
fetchtv --recordings --ip 192.168.1.10 --overwrite --folder "60 Minutes" --title "S4 E12" --save "C:\\temp"
- Save episode containing 'S4 E12' or 'S4 E13' for the show 60 Minutes to C:\Temp
fetchtv --recordings --ip 192.168.1.10 --overwrite --folder "60 Minutes" --title "S4 E12, S4 E13" --save "C:\\temp"
- List anything currently recording
fetchtv --isrecording --ip 192.168.1.10
Commands
| Command | Description |
|---|---|
--help |
Display this help |
--info |
Attempts auto-discovery and returns the Fetch box details |
--recordings |
List or save recordings |
--shows |
List the names of shows with available recordings |
--isrecording |
List any items that are currently recording. If no filtering is specified this will scan all items on the Fetch box so it can take some time |
Options
| Option | Description |
|---|---|
--ip <address> |
Specify the IP address of the Fetch box, if auto-discovery fails |
--port INTEGER |
Specify the port of the Fetch box, if auto-discovery fails, normally 49152 |
--overwrite |
Will save and overwrite any existing files |
--save <path> |
Save recordings to the specified path |
--folder <text> |
Only return recordings where the folder contains the specified text (can be repeated) |
--exclude <text> |
Dont download folders containing the specified text (can be repeated) |
--title <text> |
Only return recordings where the item contains the specified text (can be repeated) |
--json |
Output show/recording/save results in JSON |
--table / --no-table |
Show recordings in a table |
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fetchtv_cli-3.0.5.tar.gz.
File metadata
- Download URL: fetchtv_cli-3.0.5.tar.gz
- Upload date:
- Size: 27.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a71b4163510a199144041f0d6abbc02e60e70b6b5dbb0c006b94d74b96854184
|
|
| MD5 |
b1c8c51c9cb55fdb139f9b800f44ea47
|
|
| BLAKE2b-256 |
b94ec6bb7b89ffcf4f95c8f584a71d1c38f3b6bbd38081b8aa8a354e47f3c1db
|
File details
Details for the file fetchtv_cli-3.0.5-py3-none-any.whl.
File metadata
- Download URL: fetchtv_cli-3.0.5-py3-none-any.whl
- Upload date:
- Size: 25.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c6fa3915a8bffa83ac53f52cd18386f55aab539ce7977639ee9854f65a47946
|
|
| MD5 |
74e2215536f53e4061906258c7963043
|
|
| BLAKE2b-256 |
143e5c464a14f9efb2674f70dad1cf194c977cafeb92dc86262bb0f285afbbc8
|