46 lines
1.5 KiB
Markdown
46 lines
1.5 KiB
Markdown
# API and Command Line
|
|
|
|
You can choose between:
|
|
|
|
- [The JSON API](#json-api)
|
|
- [A MPD command line client like mpc](#mpc)
|
|
- [DAAP/DACP commands](#daapdacp)
|
|
|
|
The JSON API is the most versatile and the recommended method, but for simple
|
|
command line operations, mpc is easier. DAAP/DACP is only for masochists.
|
|
|
|
|
|
## JSON API
|
|
|
|
See the [JSON API docs](../json-api.md)
|
|
|
|
|
|
## mpc
|
|
|
|
[mpc](https://www.musicpd.org/clients/mpc/) is easy to use for simple operations
|
|
like enabling speakers, changing volume and getting status.
|
|
|
|
Due to differences in implementation between OwnTone and MPD, some mpc commands
|
|
will work differently or not at all.
|
|
|
|
|
|
## DAAP/DACP
|
|
|
|
Here is an example of how to use curl with DAAP/DACP. Say you have a playlist
|
|
with a radio station, and you want to make a script that starts playback of that
|
|
station:
|
|
|
|
1. Run `sqlite3 [your OwnTone db]`. Use `select id,title from files` to get
|
|
the id of the radio station, and use `select id,title from playlists` to get
|
|
the id of the playlist.
|
|
2. Convert the two ids to hex.
|
|
3. Put the following lines in the script with the relevant ids inserted (also
|
|
observe that you must use a session-id < 100, and that you must login and
|
|
logout):
|
|
|
|
```shell
|
|
curl "http://localhost:3689/login?pairing-guid=0x1&request-session-id=50"
|
|
curl "http://localhost:3689/ctrl-int/1/playspec?database-spec='dmap.persistentid:0x1'&container-spec='dmap.persistentid:0x[PLAYLIST-ID]'&container-item-spec='dmap.containeritemid:0x[FILE ID]'&session-id=50"
|
|
curl "http://localhost:3689/logout?session-id=50"
|
|
```
|