[docs] Brush up the documentation

* Try to organize after expected user need
* Update mkdocs stuff and fix a broken link
* Move web building info to building.md
* Add info about Roku Soundbridge
* Add note about Google Nest not working
This commit is contained in:
ejurgensen 2024-10-11 19:29:49 +02:00
parent 75a1082b0a
commit 7da811e3b3
20 changed files with 388 additions and 298 deletions

View File

@ -11,8 +11,7 @@ interface: Select the device and then enter the PIN that the Apple TV displays.
If your speaker is silent when you start playback, and there is no obvious error
message in the log, you can try disabling ipv6 in the config. Some speakers
announce that they support ipv6, but in fact don't (at least not with forked-
daapd).
announce that they support ipv6, but for some reason don't work with OwnTone.
If the speaker becomes unselected when you start playback, and you in the log
see "ANNOUNCE request failed in session startup: 400 Bad Request", then try

View File

@ -2,3 +2,8 @@
OwnTone will discover Chromecast devices available on your network, and you
can then select the device as a speaker. There is no configuration required.
Take note that:
- Chromecast playback can't be precisely sync'ed with other outputs e.g. AirPlay
- Playback to Google Nest doesn't work

View File

@ -0,0 +1,19 @@
# Listening on your Mobile Device
## iOS
On iOS, the options are limited because there are no Media Client apps with DAAP
support and because Apple doesn't allow AirPlay receiver apps. OwnTone also
can't share music via Home Sharing, which is the protocol Apple uses for sharing
media between devices.
That leaves the following options, which all rely on OwnTone's streaming:
- listen via the [web interface](web.md)
- use a [MPD client app](../control-clients/mobile.md#mpd-client-apps) that supports local playback
- connect to the [streaming](streaming.md) endpoint with a media player like VLC
## Android
On Android, you can use the same streaming methods described for iOS, but you
can also find apps that act as AirPlay receivers.

View File

@ -0,0 +1,9 @@
# Roku devices/speakers
OwnTone can stream audio to classic RSP/RCP-based devices like Roku Soundbridge
M1001 and M2000.
If the source file is in a non-supported format, like flac, OwnTone will
transcode to wav. Transmitting wav requires some bandwidth and the legacy
network interfaces of these devices may struggle with that. If so, you can
change the transcoding format for the speaker to alac via the [JSON API](../json-api.md#change-an-output).

View File

@ -1,20 +1,10 @@
# Streaming
The streaming option is useful when you want to listen to audio played by
OwnTone in a browser or a media player of your choice [^1],[^3].
OwnTone in a browser or a media player of your choice [^1],[^2].
Moreover, Apple Remote or the web interface can be used to control the
playback.
## Listening to Audio in a Browser
To listen to audio being played by OwnTone in a browser, follow these
steps:
1. Start playing audio in OwnTone.
2. In the web interface, activate the stream in the output menu by clicking
on the icon :material-broadcast: next to HTTP Stream.
After a few seconds, the audio should play in the background [^2].
You can control playback via the web interface or any of the supported control
clients.
## Listening to Audio in a Media Player
@ -37,10 +27,7 @@ steps:
audio, since Apple does not allow AirPlay receiver apps, and because
Home Sharing cannot be supported by OwnTone.
[^2]: On iOS devices, playing audio in the background when the device is locked
is not supported in a private browser tab.
[^3]: For the streaming option to work, MP3 encoding must be supported by
[^2]: For the streaming option to work, MP3 encoding must be supported by
`libavcodec`. If it is not, a message will appear in the log file.
For example, on Debian or Ubuntu, MP3 encoding support is provided by the
package `libavcodec-extra`.

19
docs/audio-outputs/web.md Normal file
View File

@ -0,0 +1,19 @@
# Listening to Audio in a Browser
To listen to audio being played by OwnTone in a browser, follow these
steps:
1. Start playing audio in OwnTone.
2. In the web interface, activate the stream in the output menu by clicking
on the icon :material-broadcast: next to HTTP Stream.
After a few seconds, the audio should play in the background [^1].
![Outputs](../assets/images/screenshot-outputs.png){: class="zoom" }
For the streaming option to work, MP3 encoding must be supported by
`libavcodec`. If it is not, a message will appear in the log file. For example,
on Debian or Ubuntu, MP3 encoding support is provided by the package
`libavcodec-extra`.
[^1]: On iOS devices, playing audio in the background when the device is locked
is not supported in a private browser tab.

View File

@ -272,7 +272,12 @@ The source for the player web interface is located under the `web-src` folder an
requires nodejs >= 6.0 to be built. In the `web-src` folder run `npm install` to
install all dependencies for the player web interface. After that run `npm run build`.
This will build the web interface and update the `htdocs` folder.
(See [Web interface](clients/web-interface.md) for more informations)
To serve the web interface locally you can run `npm run serve`, which will make
it reachable at [localhost:3000](http://localhost:3000). The command expects the
server be running at [localhost:3689](http://localhost:3689) and proxies API
calls to this location. If the server is running at a different location you
can use `export VITE_OWNTONE_URL=http://owntone.local:3689`.
Building with libwebsockets is required if you want the web interface.
It will be enabled if the library is present (with headers).
@ -308,6 +313,23 @@ if it's started as root.
This user must have read permission to your library and read/write permissions
to the database location (`$localstatedir/cache/owntone` by default).
## Web source formatting/linting
The source code follows certain formatting conventions for maintainability and
readability. To ensure that the source code follows these conventions,
[Prettier](https://prettier.io/) is used.
The command `npm run format` applies formatting conventions to the source code
based on a preset configuration. Note that a additional configuration is made in
the file `.prettierrc.json`.
To flag programming errors, bugs, stylistic errors and suspicious constructs in
the source code, [ESLint](https://eslint.org) is used.
ESLint has been configured following this [guide](https://vueschool.io/articles/vuejs-tutorials/eslint-and-prettier-with-vite-and-vue-js-3/).
`npm run lint` lints the source code and fixes all automatically fixable errors.
## Non-Priviliged User Version for Development
OwnTone is meant to be run as system wide daemon, but for development purposes

View File

@ -1,22 +0,0 @@
# 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](https://mpd.readthedocs.io/en/latest/protocol.html)) 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](https://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 |

View File

@ -1,71 +0,0 @@
# 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 sound card).
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 (reload the browser page if
it does not automatically pick up the pairing request)
If Remote does not 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 process 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:
```shell
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:
```shell
+ 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 the server address and port with [`nc`](https://en.wikipedia.org/wiki/Netcat) or [`telnet`](https://en.wikipedia.org/wiki/Telnet) commands.

View File

@ -1,42 +0,0 @@
# 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
- 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/macOS | 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) |

View File

@ -1,123 +0,0 @@
# Web Interface
The web interface is a mobile-friendly music player and browser for OwnTone.
You can reach it at [http://owntone.local:3689](http://owntone.local:3689)
or depending on the OwnTone installation at `http://<server-address>:<port>`.
This interface becomes useful when you need to control playback, trigger
manual library rescans, pair with remotes, select speakers, grant access to
Spotify, and for many other operations.
## Screenshots
Below you have a selection of screenshots that shows different part of the
interface.
![Now playing](../assets/images/screenshot-now-playing.png){: class="zoom" }
![Queue](../assets/images/screenshot-queue.png){: class="zoom" }
![Music browse](../assets/images/screenshot-music-browse.png){: class="zoom" }
![Music artists](../assets/images/screenshot-music-artists.png){: class="zoom" }
![Music artist](../assets/images/screenshot-music-artist.png){: class="zoom" }
![Music albums](../assets/images/screenshot-music-albums.png){: class="zoom" }
![Music albums options](../assets/images/screenshot-music-albums-options.png){: class="zoom" }
![Music album](../assets/images/screenshot-music-album.png){: class="zoom" }
![Spotify](../assets/images/screenshot-music-spotify.png){: class="zoom" }
![Audiobooks authors](../assets/images/screenshot-audiobooks-authors.png){: class="zoom" }
![Audiobooks](../assets/images/screenshot-audiobooks-books.png){: class="zoom" }
![Podcasts](../assets/images/screenshot-podcasts.png){: class="zoom" }
![Podcast](../assets/images/screenshot-podcast.png){: class="zoom" }
![Files](../assets/images/screenshot-files.png){: class="zoom" }
![Search](../assets/images/screenshot-search.png){: class="zoom" }
![Menu](../assets/images/screenshot-menu.png){: class="zoom" }
![Outputs](../assets/images/screenshot-outputs.png){: class="zoom" }
## Usage
The web interface is usually reachable at [http://owntone.local:3689](http://owntone.local:3689).
But depending on the setup of OwnTone you might need to adjust the server name
and port of the server accordingly `http://<server-name>:<port>`.
## Building and Serving
The web interface is built with [Vite](https://vitejs.dev/) and [Bulma](http://bulma.io).
Its source code is located in the `web-src` folder and therefore all `npm`
commands must be run under this folder.
To switch to this folder, run the command hereafter.
```shell
cd web-src
```
### Dependencies Installation
First of all, the dependencies to libraries must be installed with the command
below.
```shell
npm install
```
Once the libraries installed, you can either [build](#source-code-building),
[format](#source-code-formatting), and [lint](#source-code-linting) the source
code, or [serve](#serving) the web interface locally.
### Source Code Building
The following command builds the web interface for production with minification
and stores it under the folder `../htdocs`.
```shell
npm run build
```
### Source Code Formatting
The source code follows certain formatting conventions for maintainability and
readability. To ensure that the source code follows these conventions,
[Prettier](https://prettier.io/) is used.
The command below applies formatting conventions to the source code based on a
preset configuration. Note that a additional configuration is made in the file
`.prettierrc.json`.
```shell
npm run format
```
### Source Code Linting
In order to flag programming errors, bugs, stylistic errors and suspicious
constructs in the source code, [ESLint](https://eslint.org) is used.
Note that ESLint has been configured following this [guide](https://vueschool.io/articles/vuejs-tutorials/eslint-and-prettier-with-vite-and-vue-js-3/).
The following command lints the source code and fixes all automatically fixable
errors.
```shell
npm run lint
```
### Serving
In order to serve locally the web interface, the following command can be run.
```shell
npm run serve
```
After running `npm run serve` the web interface is reachable at [localhost:3000](http://localhost:3000).
By default the above command expects the OwnTone server to be running at
[localhost:3689](http://localhost:3689) and proxies API calls to this location.
If the server is running at a different location you have to set the
environment variable `VITE_OWNTONE_URL`, like in the example below.
```shell
export VITE_OWNTONE_URL=http://owntone.local:3689
npm run serve
```

View File

@ -11,7 +11,7 @@ The configuration of OwnTone - usually located in `/etc/owntone.conf` - is split
- [`airplay`](#per-airplay-device-settings) - Settings for a specific AirPlay device.
- [`chromecast`](#per-chromecast-device-settings) - Settings for a specific Chromecast device.
- [`spotify`](#spotify-settings) - Settings for the Spotify playback.
- [`rcp`](#rcp--roku-soundbridge-settings) - Settings for RCP / Roku Soundbridge devices.
- [`rcp`](#rcproku-soundbridge-settings) - Settings for RCP / Roku Soundbridge devices.
- [`mpd`](#mpd-settings) - Settings for MPD clients.
- [`sqlite`](#sqlite-settings) - Settings for SQLite operation.
- [`streaming`](#streaming-settings) - Settings for the streaming.
@ -1233,7 +1233,7 @@ Flag to indicate to use the playlist name as the album name.
album_override = <true|false>
```
## RCP / Roku Soundbridge Settings
## RCP/Roku Soundbridge Settings
```conf
rcp "<device-name>" {

View File

@ -1,10 +1,30 @@
# Command Line
# API and Command Line
You can choose between:
- a [MPD command line client](mpd.md) (easiest) like `mpc`
- curl with OwnTone's JSON API (see [JSON API docs](../json-api.md))
- curl with DAAP/DACP commands (hardest)
- [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

View File

@ -0,0 +1,52 @@
# Desktop Remote Control
To control OwnTone from Linux, Windows or Mac, you can use:
- [The web interface](#the-web-interface)
- [A remote for iTunes/Apple Music](#remotes-for-itunesapple-music)
- [A MPD client](#mpd-clients)
The web interface is the most feature complete and works on all platforms, so
on desktop there isn't much reason to use anything else.
However, instead of a remote control application, you can also connect to
OwnTone via a Media Client e.g. iTunes or Apple Music. Media clients will get
the media from OwnTone and do the playback themselves (remotes just control
OwnTone playback). See [Media Clients](../media-clients.md) for more
information.
## The web interface
See [web interface](web.md).
## Remotes for iTunes/Apple Music
There are only a few of these, see the below table.
| Client | Developer | Type | Platform | Working (vers.) |
| ------------------------ | ----------- | ------ | --------------- | --------------- |
| TunesRemote SE | | Remote | Java | Yes (r108) |
| rtRemote for Windows | bizmodeller | Remote | Windows | Yes (1.2.0.67) |
## MPD clients
There's a range of MPD clients available that also work with OwnTone e.g.
Cantata and Plattenalbum.
The better ones support local playback, speaker control, artwork and automatic
discovery of OwnTone's MPD server.
By default OwnTone listens on port 6600 for MPD clients. You can change
this in the configuration file.
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.

View File

@ -0,0 +1,141 @@
# Mobile Remote Control
To control OwnTone from your mobile device, you can use:
- [The web interface](#the-web-interface)
- [(iOS) The Remote app from Apple](#apple-remote-app-ios)
- [(Android) An iTunes/Apple Music remote app](#remotes-for-itunesapple-music-android)
- [A MPD client app](#mpd-client-apps)
The web interface is the most feature complete, but apps may have UX advantages.
The table below shows how some features compare.
| Feature | Remote | MPD client | Web |
| ------------------------------------- | ---------- | ---------- | ---------- |
| Browse library | yes | yes | yes |
| Control playback and queue | yes | yes | yes |
| Artwork | yes | yes | yes |
| Individual speaker selection | yes | some | yes |
| Individual speaker volume | yes | no | yes |
| Volume control using phone buttons | no | ? | no |
| Listen on phone | no | some | yes |
| Access non-library Spotify tracks | no | no | yes |
| Edit and save m3u playlists | no | some | yes |
While OwnTone supports playing tracks from Spotify, there is no support for
Spotify Connect, so you can't control from the Spotify app.
## The web interface
See [web interface](web.md).
## Apple Remote app (iOS)
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 sound card).
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](web.md) at either [http://owntone.local:3689](http://owntone.local:3689)
or `http://SERVER-IP-ADDRESS:3689`
2. Start Remote, go to Settings, Add Library
3. Enter the pair code in the web interface (reload the browser page if
it does not automatically pick up the pairing request)
If Remote does not 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 process 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:
```shell
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:
```shell
+ 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 the server address and
port with [`nc`](https://en.wikipedia.org/wiki/Netcat) or
[`telnet`](https://en.wikipedia.org/wiki/Telnet) commands.
## Remotes for iTunes/Apple Music (Android)
The below Android remote apps work with OwnTone.
| Client | Developer | Type | Working (vers.) |
| ------------------------ | ----------- | ------ | --------------- |
| Retune | SquallyDoc | Remote | Yes (3.5.23) |
| TunesRemote+ | Melloware | Remote | Yes (2.5.3) |
| Remote for iTunes | Hyperfine | Remote | Yes |
For usage and troubleshooting details, see the instructions for [Apple Remote](#apple-remote-app-ios).
## MPD client apps
There's a range of MPD clients available from app store that also work with
OwnTone e.g. MPD Pilot, MaximumMPD, Rigelian and Stylophone.
The better ones support local playback, speaker control, artwork and automatic
discovery of OwnTone's MPD server.
By default OwnTone listens on port 6600 for MPD clients. You can change
this in the configuration file.
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.

View File

@ -0,0 +1,44 @@
# Web Interface
The built-in web interface is a mobile-friendly music player and browser for
OwnTone.
You can reach it at [http://owntone.local:3689](http://owntone.local:3689)
or depending on the OwnTone installation at `http://<server-address>:<port>`.
This interface becomes useful when you need to control playback, trigger
manual library rescans, pair with remotes, select speakers, grant access to
Spotify, and for many other operations.
Alternatively, you can use a MPD web client like for instance [ympd](http://www.ympd.org/).
## Screenshots
Below you have a selection of screenshots that shows different part of the
interface.
![Now playing](../assets/images/screenshot-now-playing.png){: class="zoom" }
![Queue](../assets/images/screenshot-queue.png){: class="zoom" }
![Music browse](../assets/images/screenshot-music-browse.png){: class="zoom" }
![Music artists](../assets/images/screenshot-music-artists.png){: class="zoom" }
![Music artist](../assets/images/screenshot-music-artist.png){: class="zoom" }
![Music albums](../assets/images/screenshot-music-albums.png){: class="zoom" }
![Music albums options](../assets/images/screenshot-music-albums-options.png){: class="zoom" }
![Music album](../assets/images/screenshot-music-album.png){: class="zoom" }
![Spotify](../assets/images/screenshot-music-spotify.png){: class="zoom" }
![Audiobooks authors](../assets/images/screenshot-audiobooks-authors.png){: class="zoom" }
![Audiobooks](../assets/images/screenshot-audiobooks-books.png){: class="zoom" }
![Podcasts](../assets/images/screenshot-podcasts.png){: class="zoom" }
![Podcast](../assets/images/screenshot-podcast.png){: class="zoom" }
![Files](../assets/images/screenshot-files.png){: class="zoom" }
![Search](../assets/images/screenshot-search.png){: class="zoom" }
![Menu](../assets/images/screenshot-menu.png){: class="zoom" }
![Outputs](../assets/images/screenshot-outputs.png){: class="zoom" }
## Usage
The web interface is usually reachable at [http://owntone.local:3689](http://owntone.local:3689).
But depending on the setup of OwnTone you might need to adjust the server name
and port of the server accordingly `http://<server-name>:<port>`.

View File

@ -54,7 +54,7 @@ OwnTone is written in C with a web interface written in Vue.js.
![Music browse](assets/images/screenshot-music-browse.png){: class="zoom" }
![Music album](assets/images/screenshot-music-album.png){: class="zoom" }
_(You can find more screenshots from OwnTone's web interface [here](clients/web-interface.md))_
_(You can find more screenshots from OwnTone's web interface [here](control-clients/web.md))_
{: class="text-center" }
---

28
docs/media-clients.md Normal file
View File

@ -0,0 +1,28 @@
# Media Clients
Media Clients are applications that download the media from the server and do
the playback themselves. OwnTone supports media clients via the DAAP and RSP
protocols (so not UPNP).
Some Media Clients are also able to play video from OwnTone.
OwnTone can't serve Spotify, internet radio and streams to Media Clients. For
that you must let OwnTone do the playback.
Here is a list of working and non-working DAAP 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/macOS | No (2.6.2) |
| jtunes4 | | DAAP | Java | No |
| Firefly Client | | (DAAP) | Java | No |
Technically, devices like the Roku Soundbridge are both media clients and
audio outputs. You can find information about them [here](audio-outputs/roku.md).

View File

@ -100,8 +100,8 @@ markdown_extensions:
- pymdownx.caret
- pymdownx.details
- pymdownx.emoji:
emoji_generator: !!python/name:materialx.emoji.to_svg
emoji_index: !!python/name:materialx.emoji.twemoji
emoji_generator: !!python/name:material.extensions.emoji.to_svg
emoji_index: !!python/name:material.extensions.emoji.twemoji
- pymdownx.highlight:
anchor_linenums: true
- pymdownx.inlinehilite
@ -132,20 +132,23 @@ nav:
- Configuration: configuration.md
- Building: building.md
- Library: library.md
- Control:
- Mobile Device: control-clients/mobile.md
- Desktop: control-clients/desktop.md
- Browser: control-clients/web.md
- API and CLI: control-clients/cli-api.md
- Audio Outputs:
- AirPlay: audio-outputs/airplay.md
- Chromecast: audio-outputs/chromecast.md
- Local Audio: audio-outputs/local-audio.md
- Mobile Device: audio-outputs/mobile.md
- Web: audio-outputs/web.md
- Roku: audio-outputs/roku.md
- Streaming: audio-outputs/streaming.md
- Media Clients: media-clients.md
- Artwork: artwork.md
- Playlists and Radio: playlists.md
- Smart Playlists: smart-playlists.md
- Clients:
- Supported Clients: clients/supported-clients.md
- Remote: clients/remote.md
- Web Interface: clients/web-interface.md
- MPD Clients: clients/mpd.md
- Command Line: clients/cli.md
- Outputs:
- Local Audio: outputs/local-audio.md
- AirPlay: outputs/airplay.md
- Chromecast: outputs/chromecast.md
- Streaming: outputs/streaming.md
- Services Integration:
- Spotify: integrations/spotify.md
- LastFM: integrations/lastfm.md