mirror of
https://github.com/owntone/owntone-server.git
synced 2025-11-09 21:49:48 -05:00
[docs] Split docs into multiple files and publish with gh-actions
This commit is contained in:
25
docs/clients/cli.md
Normal file
25
docs/clients/cli.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# Command line
|
||||
|
||||
You can choose between:
|
||||
|
||||
- a [MPD command line client](#mpd-clients) (easiest) like `mpc`
|
||||
- curl with OwnTone's JSON API (see [README_JSON_API.md](https://github.com/owntone/owntone-server/blob/master/README_JSON_API.md))
|
||||
- curl with DAAP/DACP commands (hardest)
|
||||
|
||||
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):
|
||||
|
||||
```
|
||||
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"
|
||||
```
|
||||
24
docs/clients/mpd.md
Normal file
24
docs/clients/mpd.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# MPD clients
|
||||
|
||||
You can - to some extent - use clients for MPD to control OwnTone.
|
||||
|
||||
By default OwnTone listens on port 6600 for MPD clients. You can change
|
||||
this in the configuration file.
|
||||
|
||||
Currently only a subset of the commands offered by MPD (see [MPD protocol documentation](http://www.musicpd.org/doc/protocol/))
|
||||
are supported.
|
||||
|
||||
Due to some differences between OwnTone and MPD not all commands will act the
|
||||
same way they would running MPD:
|
||||
|
||||
- crossfade, mixrampdb, mixrampdelay and replaygain will have no effect
|
||||
- single, repeat: unlike MPD, OwnTone does not support setting single and repeat separately
|
||||
on/off, instead repeat off, repeat all and repeat single are supported. Thus setting single on
|
||||
will result in repeat single, repeat on results in repeat all.
|
||||
|
||||
The following table shows what is working for a selection of MPD clients:
|
||||
|
||||
| Client | Type | Status |
|
||||
| --------------------------------------------- | ------ | --------------- |
|
||||
| [mpc](http://www.musicpd.org/clients/mpc/) | CLI | Working commands: mpc, add, crop, current, del (ranges are not yet supported), play, next, prev (behaves like cdprev), pause, toggle, cdprev, seek, clear, outputs, enable, disable, playlist, ls, load, volume, repeat, random, single, search, find, list, update (initiates an init-rescan, the path argument is not supported) |
|
||||
| [ympd](http://www.ympd.org/) | Web | Everything except "add stream" should work |
|
||||
66
docs/clients/remote.md
Normal file
66
docs/clients/remote.md
Normal file
@@ -0,0 +1,66 @@
|
||||
# Using Remote
|
||||
|
||||
Remote gets a list of output devices from the server; this list includes any
|
||||
and all devices on the network we know of that advertise AirPlay: AirPort
|
||||
Express, Apple TV, ... It also includes the local audio output, that is, the
|
||||
sound card on the server (even if there is no soundcard).
|
||||
|
||||
OwnTone remembers your selection and the individual volume for each
|
||||
output device; selected devices will be automatically re-selected, except if
|
||||
they return online during playback.
|
||||
|
||||
## Pairing
|
||||
|
||||
1. Open the [web interface](http://owntone.local:3689)
|
||||
2. Start Remote, go to Settings, Add Library
|
||||
3. Enter the pair code in the web interface (update the page with F5 if it does
|
||||
not automatically pick up the pairing request)
|
||||
|
||||
If Remote doesn't connect to OwnTone after you entered the pairing code
|
||||
something went wrong. Check the log file to see the error message. Here are
|
||||
some common reasons:
|
||||
|
||||
- You did not enter the correct pairing code
|
||||
|
||||
You will see an error in the log about pairing failure with a HTTP response code
|
||||
that is *not* 0.
|
||||
|
||||
Solution: Try again.
|
||||
|
||||
- No response from Remote, possibly a network issue
|
||||
|
||||
If you see an error in the log with either:
|
||||
|
||||
- a HTTP response code that is 0
|
||||
- "Empty pairing request callback"
|
||||
|
||||
it means that OwnTone could not establish a connection to Remote. This
|
||||
might be a network issue, your router may not be allowing multicast between the
|
||||
Remote device and the host OwnTone is running on.
|
||||
|
||||
Solution 1: Sometimes it resolves the issue if you force Remote to quit, restart
|
||||
it and do the pairing proces again. Another trick is to establish some other
|
||||
connection (eg SSH) from the iPod/iPhone/iPad to the host.
|
||||
|
||||
Solution 2: Check your router settings if you can whitelist multicast addresses
|
||||
under IGMP settings. For Apple Bonjour, setting a multicast address of
|
||||
224.0.0.251 and a netmask of 255.255.255.255 should work.
|
||||
|
||||
- Otherwise try using avahi-browse for troubleshooting:
|
||||
|
||||
- in a terminal, run `avahi-browse -r -k _touch-remote._tcp`
|
||||
- start Remote, goto Settings, Add Library
|
||||
- after a couple seconds at most, you should get something similar to this:
|
||||
|
||||
```
|
||||
+ ath0 IPv4 59eff13ea2f98dbbef6c162f9df71b784a3ef9a3 _touch-remote._tcp local
|
||||
= ath0 IPv4 59eff13ea2f98dbbef6c162f9df71b784a3ef9a3 _touch-remote._tcp local
|
||||
hostname = [Foobar.local]
|
||||
address = [192.168.1.1]
|
||||
port = [49160]
|
||||
txt = ["DvTy=iPod touch" "RemN=Remote" "txtvers=1" "RemV=10000" "Pair=FAEA410630AEC05E" "DvNm=Foobar"]
|
||||
```
|
||||
|
||||
Hit Ctrl-C to terminate avahi-browse.
|
||||
|
||||
- To check for network issues you can try to connect to address and port with telnet.
|
||||
43
docs/clients/supported-clients.md
Normal file
43
docs/clients/supported-clients.md
Normal file
@@ -0,0 +1,43 @@
|
||||
# Supported clients
|
||||
|
||||
OwnTone supports these kinds of clients:
|
||||
|
||||
- DAAP clients, like iTunes or Rhythmbox
|
||||
- Remote clients, like Apple Remote or compatibles for Android/Windows Phone
|
||||
- AirPlay devices, like AirPort Express, Shairport and various AirPlay speakers
|
||||
- Chromecast devices
|
||||
- MPD clients, like mpc (see [mpd-clients](#mpd-clients))
|
||||
- MP3 network stream clients, like VLC and almost any other music player
|
||||
- RSP clients, like Roku Soundbridge
|
||||
|
||||
Like iTunes, you can control OwnTone with Remote and stream your music to
|
||||
AirPlay devices.
|
||||
|
||||
A single OwnTone instance can handle several clients concurrently, regardless of
|
||||
the protocol.
|
||||
|
||||
By default all clients on 192.168.* (and the ipv6 equivalent) are allowed to
|
||||
connect without authentication. You can change that in the configuration file.
|
||||
|
||||
Here is a list of working and non-working DAAP and Remote clients. The list is
|
||||
probably obsolete when you read it :-)
|
||||
|
||||
| Client | Developer | Type | Platform | Working (vers.) |
|
||||
| ------------------------ | ----------- | ------ | ------------- | --------------- |
|
||||
| iTunes | Apple | DAAP | Win | Yes (12.10.1) |
|
||||
| Apple Music | Apple | DAAP | MacOS | Yes |
|
||||
| Rhythmbox | Gnome | DAAP | Linux | Yes |
|
||||
| Diapente | diapente | DAAP | Android | Yes |
|
||||
| WinAmp DAAPClient | WardFamily | DAAP | WinAmp | Yes |
|
||||
| Amarok w/DAAP plugin | KDE | DAAP | Linux/Win | Yes (2.8.0) |
|
||||
| Banshee | | DAAP | Linux/Win/OSX | No (2.6.2) |
|
||||
| jtunes4 | | DAAP | Java | No |
|
||||
| Firefly Client | | (DAAP) | Java | No |
|
||||
| Remote | Apple | Remote | iOS | Yes (4.3) |
|
||||
| Retune | SquallyDoc | Remote | Android | Yes (3.5.23) |
|
||||
| TunesRemote+ | Melloware | Remote | Android | Yes (2.5.3) |
|
||||
| Remote for iTunes | Hyperfine | Remote | Android | Yes |
|
||||
| Remote for Windows Phone | Komodex | Remote | Windows Phone | Yes (2.2.1.0) |
|
||||
| TunesRemote SE | | Remote | Java | Yes (r108) |
|
||||
| rtRemote for Windows | bizmodeller | Remote | Windows | Yes (1.2.0.67) |
|
||||
|
||||
77
docs/clients/web-interface.md
Normal file
77
docs/clients/web-interface.md
Normal file
@@ -0,0 +1,77 @@
|
||||
# OwnTone web interface
|
||||
|
||||
Mobile friendly player web interface for [OwnTone](http://owntone.github.io/owntone-server/) build
|
||||
with [Vue.js](https://vuejs.org), [Bulma](http://bulma.io).
|
||||
|
||||
You can find the web interface at [http://owntone.local:3689](http://owntone.local:3689)
|
||||
or alternatively at [http://[your_server_address_here]:3689](http://[your_server_address_here]:3689).
|
||||
|
||||
Use the web interface to control playback, trigger manual library rescans, pair
|
||||
with remotes, select speakers, authenticate with Spotify, etc.
|
||||
|
||||
## Screenshots
|
||||
|
||||
{: class="zoom" }
|
||||
{: class="zoom" }
|
||||
{: class="zoom" }
|
||||
{: class="zoom" }
|
||||
{: class="zoom" }
|
||||
{: class="zoom" }
|
||||
{: class="zoom" }
|
||||
{: class="zoom" }
|
||||
{: class="zoom" }
|
||||
{: class="zoom" }
|
||||
{: class="zoom" }
|
||||
{: class="zoom" }
|
||||
{: class="zoom" }
|
||||
{: class="zoom" }
|
||||
{: class="zoom" }
|
||||
{: class="zoom" }
|
||||
{: class="zoom" }
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
You can find OwnTone's web interface at [http://owntone.local:3689](http://owntone.local:3689)
|
||||
or alternatively at [http://[your_server_address_here]:3689](http://[your_server_address_here]:3689).
|
||||
|
||||
|
||||
## Build Setup
|
||||
|
||||
The source is located in the `web-src` folder.
|
||||
|
||||
```
|
||||
cd web-src
|
||||
```
|
||||
|
||||
The web interface is built with [Vite](https://vitejs.dev/), makes use of Prettier for code formatting
|
||||
and ESLint for code linting (the project was set up following the guide [ESLint and Prettier with Vite and Vue.js 3](https://vueschool.io/articles/vuejs-tutorials/eslint-and-prettier-with-vite-and-vue-js-3/)
|
||||
|
||||
``` bash
|
||||
# install dependencies
|
||||
npm install
|
||||
|
||||
# Serve with hot reload at localhost:3000
|
||||
# (assumes that OwnTone server is running on localhost:3689)
|
||||
npm run serve
|
||||
|
||||
# Serve with hot reload at localhost:3000
|
||||
# (with remote OwnTone server reachable under owntone.local:3689)
|
||||
VITE_OWNTONE_URL=http://owntone.local:3689 npm run serve
|
||||
|
||||
# Build for production with minification (will update web interface
|
||||
# in "../htdocs")
|
||||
npm run build
|
||||
|
||||
# Format code
|
||||
npm run format
|
||||
|
||||
# Lint code (and fix errors that can be automatically fixed)
|
||||
npm run lint
|
||||
```
|
||||
|
||||
After running `npm run serve` the web interface is reachable at [localhost:3000](http://localhost:3000).
|
||||
By default it expects **owntone** to be running at [localhost:3689](http://localhost:3689) and proxies all
|
||||
JSON API calls to this location.
|
||||
|
||||
If the server is running at a different location you have to set the env variable `VITE_OWNTONE_URL`.
|
||||
Reference in New Issue
Block a user