# kodi-cli
## Command Line Interface for Kodi
This tool can be used from the command line to execute commands against a target Kodi host via the RPC interface defined at https://kodi.wiki/view/JSON-RPC_API/v12.
The available commands are defined via jsons files ([**methods.json and types.json**](https://github.com/JavaWiz1/kodi-cli/blob/develop/json-defs/)) which describes all the namespaces, methods, parameters (methods.json) and reference types (types.json) for managing the kodi device remotely. These files are copied from the kodi source repository for kodi v19 (matrix).
**Note**
- Namespace Methods and Types are case-sensitive. Use help parameter or refer to the [Kodi RPC page](https://kodi.wiki/view/JSON-RPC_API/v12) for proper capitalization.
- An *entrypoint* is created on install that allows the script to be run without specifying ***python kodi_cli.py***, simply type ***kodi-cli*** to execute the script.
</br></br>
The documentation will reflect calls using the entrypoint (*kodi-cli*) as described above.
</br>
---
## Overall Description
*Commands* are based on Kodi **namespaces, methods and parameters**. Each namespace (i.e. Application, System,...) has a set of pre-defned methods. When executing a command you supply the **Namespace.Method parameter(s)** (case-sensitive).
For example, to display the mute and volume level settings on host kodi001, the command is constructed as follows:<br>
`kodi-cli -H kodi001 -f Application.GetProperties properties=[muted,volume]`
- **-H kodi001** identifies the target host
- **-f** indicates the output should be formatted
- **Application.GetProperties** is the parameter
- *Application* is the namespace
- *GetProperties* is the method
- *properties=[muted,volume]* are the parameters
The output of the tool is the json response from the Kodi endpoint the command was targeted to.
```
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"muted": false,
"volume": 100
}
}
```
When defining an object type parameter, create it as a pseudo dictionary as below:
`kodi-cli -H kodi001 Addons.GetAddons properties=[name,version,summary] limits={start:0,end:99}`
- **limits** is an object, that contains two values start and end.
## Some terms:
| Term | Description |
| ------------- | ---------------------------- |
| namespace | The data model is split into namespace components which can be called via the API |
| methods | Each namespace has a number of methods which perform some function within that namespace |
| parameter(s) | Each namespace.method command may have required or optional parameters to control the output |
| command | A command is a namespace, method, parameter combiniation used to control Kodi function (fmt: Namespace.Method) |
</br>
---
## Usage
```
usage: kodi-cli [-h] [-H HOST] [-P PORT] [-u USER] [-p PASSWORD] [-C] [-f] [-v] [-i] [command [parameter ...]]
Kodi CLI controller v0.2.1
positional arguments:
command RPC command namespace.method (help namespace to list)
optional arguments:
-h, --help show this help message and exit
-H HOST, --host HOST Kodi hostname
-P PORT, --port PORT Kodi RPC listen port
-u USER, --kodi-user USER
Kodi authenticaetion username
-p PASSWORD, --kodi-password PASSWORD
Kodi autentication password
-C, --create_config Create empty config
-CO, --create_config_overwrite
Create default config, overwrite if exists
-f, --format_output Format json output
-c, --csv-output Format csv output (only specific commands)
-v, --verbose Verbose output, -v = INFO, -vv = DEBUG
-i, --info display program info and quit
```
<br>
**TIPS - When calling the script:**
| action | description |
| ------ | ----------- |
| add -h option | to display script syntax and list of option parameters |
| enter help | as a parameter for help on namespace or namespace.method or namespace.type <br>add -v to get json defintion|
| add -i | to output runtime and program information |
| add -f | to format the json output into a friendly format |
| add -C or (-CO) | to create a config file with runtime defaults (see "Create config file to store defaults" below)|
</br>
**Help commands:**
You can get help from the command line to view namespaces, namespace methods and calling requirements.
Help Examples
| action | example |
| ------ | ------- |
| list of namespaces | `kodi-cli help` |
| Methods for Namespace | `kodi-cli Application help` |
| Parameters for Method | `kodi-cli Application.GetProperties help` |
| Type/References | `kodi-cli List.Filter.Albums` to get the type defintion for the reference |
Details for namespaces, methods and type parameters may be found at https://kodi.wiki/view/JSON-RPC_API/v12
</br>
---
## Prerequsites:
**Python 3.7+**<br>
**Python packages**
- requests package
<br>
Code can be installed via pip or pipx:
- pip install kodi-cli [--user]
- pipx install kodi-cli
**Kodi configuration**
- Remote control via HTTP must be enabled.
- Enable in Kodi UI - Settings -> Services -> Control
</br></br>
---
## Usage Examples
---
### Create a config file to store defaults
To minimize command-line entry, you can store defaults in a config file which will default values on startup. The
values can be over-ridded at run-time by providing the optional command-line argument.
To create a default config file, type your standard defaults as if you were going to execute the CLI and add -C (or -CO)
at the end.
The config file will be written with the values.
```
SYNTAX:
kodi-cli -u myId -p myPassword -P 8080 -C
OUTPUT:
a file kodi_cli.cfg will be written as:
...
[LOGGING]
logging_enabled = False
logging_filename = ./logs/kodi_cli.log
logging_rotation = 1 MB
logging_retention = 3
logging_level = INFO
logger_blacklist =
[SERVER]
host = localhost
port = 8080
[LOGIN]
kodi_user = kodi
kodi_pw = kodi
[OUTPUT]
format_output = False
csv_output = False
```
NOTE:
- if current file does not exist, it will be created as ~/.kodi_cli/kodi_cli.cfg
- if current file does exist error will be thrown unless -CO option is used.
- user and password is stored in clear text
</br></br>
---
### List all **namespaces**
Namespaces are modules in Kodi, each namespace manages differ aspects of the Kodi interface
```
SYNTAX:
kodi-cli help
OUTPUT:
Kodi namespaces -
Namespace Methods
--------------- ----------------------------------------------------------------------------
Addons ExecuteAddon, GetAddonDetails, GetAddons, SetAddonEnabled
Application GetProperties, Quit, SetMute, SetVolume
AudioLibrary Clean, GetAlbumDetails, GetAlbums, GetArtistDetails,
GetArtists, Scan
Favorites AddFavorite, GetFavorites
GUI ActivateWindow, ShowNotification
Input Back, ButtonEvent, ContextMenu, Down, ExecuteAction,
Home, Info, Left, Right, Select, SendText,
ShowCodec, ShowOSD, ShowPlayProcessInfo, Up
...
```
</br></br>
---
### List all namespace ***methods***
Each namespace has a number of methods that can be called.
To get a list of supported of supported methods for the ***Application*** namespace
```
SYNTAX:
kodi-cli Application help
or
kodi-cli Application
OUTPUT:
Application Namespace Methods:
Method Description
------------------------- --------------------------------------------
Application.GetProperties Retrieves the values of the given properties
Application.Quit Quit application
Application.SetMute Toggle mute/unmute
Application.SetVolume Set the current volume
```
</br></br>
---
### List the ***method calling signature*** for a namespace method
List the sytax for the Application.SetMute command
```
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
Signature : Application.SetMute(mute)
Description : Toggle mute/unmute
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
mute
Required : True
Reference : Global.Toggle
Type : boolean: True,False
string: enum [toggle]
Values : True, False
```
To use:
``` kodi-cli -H kodi001 Application.SetMute mute=false ```
</br></br>
---
## Command Execution Examples
### Toggle Mute on/off
To toggle the mute on, then off
First call will toggle mute on, 2nd call will toggle mute off.
```
SYNTAX:
kodi-cli -H ServerName Application.SetMute mute=toggle
OUTPUT:
kodi-cli -H MyKodiServer Application.SetMute mute=toggle
{"id":1,"jsonrpc":"2.0","result":true}
kodi-cli -H MyKodiServer Application.SetMute mute=toggle
{"id":1,"jsonrpc":"2.0","result":false}
```
</br></br>
---
### Retrieve Application Properties
To retrieve the muted status and volume level for server kodi001
```
SYNTAX:
kodi-cli -H kodi001 Application.GetProperties properties=[muted,volume] -f
OUTPUT:
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"muted": false,
"volume": 100
}
}
```
</br></br>
---
### List Addons
To retrieve the list of the first five Addons
```
SYNTAX:
kodi-cli -H kodi001 Addons.GetAddons properties=[name,version,summary] limits={start:0,end:5} -f
OUTPUT:
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"addons": [
{
"addonid": "audioencoder.kodi.builtin.aac",
"name": "AAC encoder",
"summary": "AAC Audio Encoder",
"type": "kodi.audioencoder",
"version": "1.0.2"
},
...
{
"addonid": "webinterface.default",
"name": "Kodi web interface - Chorus2",
"summary": "Default web interface",
"type": "xbmc.webinterface",
"version": "19.x-2.4.8"
}
],
"limits": {
"end": 5,
"start": 0,
"total": 34
}
}
}
```
</br></br>
---
### Display a notification on Kodi UI
To display a warning message on Kodi running on kodi001 for 5 seconds
```
SYNTAX:
kodi-cli -H kodi001 GUI.ShowNotification title="Dinner Time" message="Time to eat!" image="warning" displaytime=5000
OUTPUT:
{"id":1,"jsonrpc":"2.0","result":"OK"}
```
</br></br>
---
Still TODO:
- Edit parameters prior to call to avoid runtime error.
- Provide additional help/runtime detail on parameters
- Different output formats (rather than just raw and formatted json)
Raw data
{
"_id": null,
"home_page": "https://github.com/JavaWiz1/kodi-cli",
"name": "kodi-cli",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7,<4.0",
"maintainer_email": "",
"keywords": "kodi,cli,command-line,python",
"author": "Al DAmico",
"author_email": "JavaWiz1@hotmail.com",
"download_url": "https://files.pythonhosted.org/packages/ff/05/b6313108a5b4d4e4c5e2ab176ef05b532c4b7c332f057e13cbde4458b2d6/kodi_cli-0.2.1.tar.gz",
"platform": null,
"description": "# kodi-cli\n\n## Command Line Interface for Kodi\n\nThis tool can be used from the command line to execute commands against a target Kodi host via the RPC interface defined at https://kodi.wiki/view/JSON-RPC_API/v12. \n\nThe available commands are defined via jsons files ([**methods.json and types.json**](https://github.com/JavaWiz1/kodi-cli/blob/develop/json-defs/)) which describes all the namespaces, methods, parameters (methods.json) and reference types (types.json) for managing the kodi device remotely. These files are copied from the kodi source repository for kodi v19 (matrix).\n\n**Note** \n- Namespace Methods and Types are case-sensitive. Use help parameter or refer to the [Kodi RPC page](https://kodi.wiki/view/JSON-RPC_API/v12) for proper capitalization.\n- An *entrypoint* is created on install that allows the script to be run without specifying ***python kodi_cli.py***, simply type ***kodi-cli*** to execute the script.\n</br></br>\nThe documentation will reflect calls using the entrypoint (*kodi-cli*) as described above.\n\n\n\n</br>\n\n---\n## Overall Description\n\n*Commands* are based on Kodi **namespaces, methods and parameters**. Each namespace (i.e. Application, System,...) has a set of pre-defned methods. When executing a command you supply the **Namespace.Method parameter(s)** (case-sensitive).\n\nFor example, to display the mute and volume level settings on host kodi001, the command is constructed as follows:<br>\n\n `kodi-cli -H kodi001 -f Application.GetProperties properties=[muted,volume]`\n- **-H kodi001** identifies the target host\n- **-f** indicates the output should be formatted\n- **Application.GetProperties** is the parameter\n - *Application* is the namespace\n - *GetProperties* is the method\n - *properties=[muted,volume]* are the parameters\n\nThe output of the tool is the json response from the Kodi endpoint the command was targeted to.\n```\n{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"result\": {\n \"muted\": false,\n \"volume\": 100\n }\n}\n```\n\nWhen defining an object type parameter, create it as a pseudo dictionary as below:\n\n `kodi-cli -H kodi001 Addons.GetAddons properties=[name,version,summary] limits={start:0,end:99}`\n \n - **limits** is an object, that contains two values start and end.\n## Some terms:\n\n| Term | Description |\n| ------------- | ---------------------------- |\n| namespace | The data model is split into namespace components which can be called via the API |\n| methods | Each namespace has a number of methods which perform some function within that namespace |\n| parameter(s) | Each namespace.method command may have required or optional parameters to control the output |\n| command | A command is a namespace, method, parameter combiniation used to control Kodi function (fmt: Namespace.Method) |\n</br>\n\n---\n\n## Usage\n\n```\nusage: kodi-cli [-h] [-H HOST] [-P PORT] [-u USER] [-p PASSWORD] [-C] [-f] [-v] [-i] [command [parameter ...]]\n\nKodi CLI controller v0.2.1\n\npositional arguments:\n command RPC command namespace.method (help namespace to list)\n\noptional arguments:\n -h, --help show this help message and exit\n -H HOST, --host HOST Kodi hostname\n -P PORT, --port PORT Kodi RPC listen port\n -u USER, --kodi-user USER \n Kodi authenticaetion username\n -p PASSWORD, --kodi-password PASSWORD\n Kodi autentication password\n -C, --create_config Create empty config\n -CO, --create_config_overwrite\n Create default config, overwrite if exists\n -f, --format_output Format json output\n -c, --csv-output Format csv output (only specific commands)\n -v, --verbose Verbose output, -v = INFO, -vv = DEBUG\n -i, --info display program info and quit\n```\n<br>\n\n**TIPS - When calling the script:**\n| action | description |\n| ------ | ----------- |\n| add -h option | to display script syntax and list of option parameters |\n| enter help | as a parameter for help on namespace or namespace.method or namespace.type <br>add -v to get json defintion|\n| add -i | to output runtime and program information |\n| add -f | to format the json output into a friendly format |\n| add -C or (-CO) | to create a config file with runtime defaults (see \"Create config file to store defaults\" below)|\n</br>\n\n**Help commands:**\nYou can get help from the command line to view namespaces, namespace methods and calling requirements. \n\nHelp Examples\n| action | example |\n| ------ | ------- |\n| list of namespaces | `kodi-cli help` |\n| Methods for Namespace | `kodi-cli Application help` |\n| Parameters for Method | `kodi-cli Application.GetProperties help` |\n| Type/References | `kodi-cli List.Filter.Albums` to get the type defintion for the reference |\n\nDetails for namespaces, methods and type parameters may be found at https://kodi.wiki/view/JSON-RPC_API/v12\n \n</br>\n\n---\n## Prerequsites:\n\n**Python 3.7+**<br>\n**Python packages**\n- requests package\n<br>\nCode can be installed via pip or pipx:\n- pip install kodi-cli [--user]\n- pipx install kodi-cli\n\n**Kodi configuration**\n- Remote control via HTTP must be enabled.\n- Enable in Kodi UI - Settings -> Services -> Control\n</br></br>\n\n---\n## Usage Examples\n---\n### Create a config file to store defaults\nTo minimize command-line entry, you can store defaults in a config file which will default values on startup. The\nvalues can be over-ridded at run-time by providing the optional command-line argument.\n\nTo create a default config file, type your standard defaults as if you were going to execute the CLI and add -C (or -CO)\nat the end.\nThe config file will be written with the values.\n```\nSYNTAX:\n kodi-cli -u myId -p myPassword -P 8080 -C\n\nOUTPUT:\n a file kodi_cli.cfg will be written as:\n...\n[LOGGING]\nlogging_enabled = False\nlogging_filename = ./logs/kodi_cli.log\nlogging_rotation = 1 MB\nlogging_retention = 3\nlogging_level = INFO\nlogger_blacklist = \n\n[SERVER]\nhost = localhost\nport = 8080\n\n[LOGIN]\nkodi_user = kodi\nkodi_pw = kodi\n\n[OUTPUT]\nformat_output = False\ncsv_output = False\n```\nNOTE:\n- if current file does not exist, it will be created as ~/.kodi_cli/kodi_cli.cfg\n- if current file does exist error will be thrown unless -CO option is used.\n- user and password is stored in clear text\n</br></br>\n\n---\n### List all **namespaces**\n\nNamespaces are modules in Kodi, each namespace manages differ aspects of the Kodi interface\n\n```\nSYNTAX:\n kodi-cli help\n\nOUTPUT:\n\n Kodi namespaces -\n Namespace Methods\n --------------- ----------------------------------------------------------------------------\n Addons ExecuteAddon, GetAddonDetails, GetAddons, SetAddonEnabled\n\n Application GetProperties, Quit, SetMute, SetVolume\n\n AudioLibrary Clean, GetAlbumDetails, GetAlbums, GetArtistDetails,\n GetArtists, Scan\n\n Favorites AddFavorite, GetFavorites\n\n GUI ActivateWindow, ShowNotification\n\n Input Back, ButtonEvent, ContextMenu, Down, ExecuteAction,\n Home, Info, Left, Right, Select, SendText,\n ShowCodec, ShowOSD, ShowPlayProcessInfo, Up\n ...\n```\n</br></br>\n\n---\n### List all namespace ***methods***\n\nEach namespace has a number of methods that can be called. \n\nTo get a list of supported of supported methods for the ***Application*** namespace\n\n```\nSYNTAX:\n kodi-cli Application help\n or\n kodi-cli Application\n\nOUTPUT:\n\n Application Namespace Methods:\n\n Method Description\n ------------------------- --------------------------------------------\n Application.GetProperties Retrieves the values of the given properties\n Application.Quit Quit application\n Application.SetMute Toggle mute/unmute\n Application.SetVolume Set the current volume\n```\n</br></br>\n\n---\n### List the ***method calling signature*** for a namespace method\n\nList the sytax for the Application.SetMute command\n\n```\n\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\nSignature : Application.SetMute(mute)\nDescription : Toggle mute/unmute\n\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\nmute\n Required : True\n Reference : Global.Toggle\n Type : boolean: True,False\n string: enum [toggle]\n Values : True, False\n\n```\nTo use:\n``` kodi-cli -H kodi001 Application.SetMute mute=false ```\n\n</br></br>\n\n---\n## Command Execution Examples\n\n### Toggle Mute on/off\n\nTo toggle the mute on, then off\n\nFirst call will toggle mute on, 2nd call will toggle mute off.\n\n```\nSYNTAX:\n kodi-cli -H ServerName Application.SetMute mute=toggle\n\nOUTPUT:\n kodi-cli -H MyKodiServer Application.SetMute mute=toggle\n {\"id\":1,\"jsonrpc\":\"2.0\",\"result\":true}\n\n kodi-cli -H MyKodiServer Application.SetMute mute=toggle\n {\"id\":1,\"jsonrpc\":\"2.0\",\"result\":false}\n```\n</br></br>\n\n---\n### Retrieve Application Properties\n\nTo retrieve the muted status and volume level for server kodi001\n```\nSYNTAX:\n kodi-cli -H kodi001 Application.GetProperties properties=[muted,volume] -f\n\nOUTPUT:\n{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"result\": {\n \"muted\": false,\n \"volume\": 100\n }\n}\n\n```\n</br></br>\n\n---\n### List Addons\n\nTo retrieve the list of the first five Addons\n```\nSYNTAX:\n kodi-cli -H kodi001 Addons.GetAddons properties=[name,version,summary] limits={start:0,end:5} -f\n\nOUTPUT:\n{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"result\": {\n \"addons\": [\n {\n \"addonid\": \"audioencoder.kodi.builtin.aac\",\n \"name\": \"AAC encoder\",\n \"summary\": \"AAC Audio Encoder\",\n \"type\": \"kodi.audioencoder\",\n \"version\": \"1.0.2\"\n },\n\n ...\n \n {\n \"addonid\": \"webinterface.default\",\n \"name\": \"Kodi web interface - Chorus2\",\n \"summary\": \"Default web interface\",\n \"type\": \"xbmc.webinterface\",\n \"version\": \"19.x-2.4.8\"\n }\n ],\n \"limits\": {\n \"end\": 5,\n \"start\": 0,\n \"total\": 34\n }\n }\n} \n\n```\n</br></br>\n\n---\n### Display a notification on Kodi UI\nTo display a warning message on Kodi running on kodi001 for 5 seconds\n```\nSYNTAX:\n kodi-cli -H kodi001 GUI.ShowNotification title=\"Dinner Time\" message=\"Time to eat!\" image=\"warning\" displaytime=5000\n\nOUTPUT:\n{\"id\":1,\"jsonrpc\":\"2.0\",\"result\":\"OK\"}\n\n```\n</br></br>\n\n---\nStill TODO:\n- Edit parameters prior to call to avoid runtime error.\n- Provide additional help/runtime detail on parameters\n- Different output formats (rather than just raw and formatted json)",
"bugtrack_url": null,
"license": "MIT",
"summary": "Control your Kodi instance(s) via the commandline",
"version": "0.2.1",
"project_urls": {
"Homepage": "https://github.com/JavaWiz1/kodi-cli"
},
"split_keywords": [
"kodi",
"cli",
"command-line",
"python"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "1f6b9dd7811cf4ecdc224ec3289369e646e0285fdfcec7969ff39f7992fabf0c",
"md5": "a8ad22686843db2ad2f46891794f7413",
"sha256": "6d33332b0c267471bff71befa2d3e93305056a76a99039776cfa8a9ff9bbcd91"
},
"downloads": -1,
"filename": "kodi_cli-0.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a8ad22686843db2ad2f46891794f7413",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7,<4.0",
"size": 46719,
"upload_time": "2024-02-15T15:20:00",
"upload_time_iso_8601": "2024-02-15T15:20:00.029526Z",
"url": "https://files.pythonhosted.org/packages/1f/6b/9dd7811cf4ecdc224ec3289369e646e0285fdfcec7969ff39f7992fabf0c/kodi_cli-0.2.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ff05b6313108a5b4d4e4c5e2ab176ef05b532c4b7c332f057e13cbde4458b2d6",
"md5": "3d2fc7d7fa8707198ec418f4b734c35a",
"sha256": "186a3619a61462ee94740b48e32fe10a26572f14a3c331ae0798827e68b2dc53"
},
"downloads": -1,
"filename": "kodi_cli-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "3d2fc7d7fa8707198ec418f4b734c35a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7,<4.0",
"size": 43182,
"upload_time": "2024-02-15T15:20:02",
"upload_time_iso_8601": "2024-02-15T15:20:02.178360Z",
"url": "https://files.pythonhosted.org/packages/ff/05/b6313108a5b4d4e4c5e2ab176ef05b532c4b7c332f057e13cbde4458b2d6/kodi_cli-0.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-15 15:20:02",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "JavaWiz1",
"github_project": "kodi-cli",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "kodi-cli"
}