# mlblive
mlblive is a CLI tool for retrieving data from Major League Baseball's Stats
API, including efficient retrieval of live game data. Unofficial documentation
on the Stats API can be found
[here](https://github.com/toddrob99/MLB-StatsAPI/wiki/Endpoints) (thanks to
GitHub user toddrob99 for this resource).

## Usage
mlblive provides sub-commands to query a subset of the Stats API endpoints. As
of the time of writing, the sub-commands are:
* `mlblive content` (accesses the `game_content` endpoint)
* `mlblive feed` (accesses the `game` endpoint)
* `mlblive schedule` (accesses the `schedule` endpoint)
* `mlblive standings` (accesses the `standings` endpoint)
* `mlblive subscribe` (accesses the game WebSocket endpoint)

Each sub-command outputs the raw JSON response from the API. This can then be
piped into other commands like `jq` for further processing. See [this
repo](https://scm.dairydemon.net/filifa/mlblive-mastodon-scripts) for examples
of how the author use this program for posting live score updates and
highlights to Mastodon.

Note that mlblive does not provide sub-commands for every endpoint, or flags
for every parameter of every endpoint. The functionality provided was
prioritized based on the author's own needs. However, the author has made every
effort to make the current functionality's code easy to read, and hopes it will
be similarly easy for other developers to extend functionality as needed.

### subscribe sub-command
`mlblive subscribe` provides an efficient way to obtain live data on active MLB
games. Supply the game's PK (which can be retrieved with `mlblive schedule`) to
receive updates as they happen, without needing to blindly query the `game`
endpoint.

### Example
Use `mlblive schedule` to get the game PK(s) for today's Reds game:
```
mlblive schedule -t cin
```
Optionally, use `jq` to filter this output to *just* the game PK(s):
```
mlblive schedule -t cin | jq '.dates[].games[].gamePk'
```
Then, pass a PK to get live updates:
```
mlblive subscribe -g <gamePk>
```

## Disclaimer
This program and its author are not affiliated with MLB. Content supplied by
MLB's Stats API is copyright MLB Advanced Media, L.P., and use of any content
provided by the API acknowledges agreement to the terms posted [here](
http://gdx.mlb.com/components/copyright.txt).
