owntone-server/configuration/index.html

160 lines
121 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Linux/FreeBSD DAAP (iTunes) and MPD media server with support for AirPlay devices (multiroom), Apple Remote (and compatibles), Chromecast, Spotify and internet radio. "><meta name=author content="OwnTone maintainers"><link href=https://owntone.github.io/owntone-server/configuration/ rel=canonical><link href=../installation/ rel=prev><link href=../building/ rel=next><link rel=icon href=../assets/favicon.ico><meta name=generator content="mkdocs-1.6.0, mkdocs-material-9.5.19"><title>Configuration - OwnTone</title><link rel=stylesheet href=../assets/stylesheets/main.66ac8b77.min.css><link rel=stylesheet href=../assets/stylesheets/palette.06af60db.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../assets/extra.css><script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=white data-md-color-accent=teal> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#configuration class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=.. title=OwnTone class="md-header__button md-logo" aria-label=OwnTone data-md-component=logo> <img src=../assets/logo.svg alt=logo> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> OwnTone </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Configuration </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=white data-md-color-accent=teal aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5m0 8a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3Z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=blue-grey data-md-color-accent=teal aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M17 6H7c-3.31 0-6 2.69-6 6s2.69 6 6 6h10c3.31 0 6-2.69 6-6s-2.69-6-6-6zm0 10H7c-2.21 0-4-1.79-4-4s1.79-4 4-4h10c2.21 0 4 1.79 4 4s-1.79 4-4 4zM7 9c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"/></svg> </label> </form> <script>var media,input,key,value,palette=__md_get("__palette");if(palette&&palette.color){"(prefers-color-scheme)"===palette.color.media&&(media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']"),palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent"));for([key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg> </label> <nav class=md-search__options aria-label=Search> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg> </button> </nav> </form> <div class=md-search__output> <div class=md-search__scrollwrap data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/owntone/owntone-server title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 448 512"><!-- Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg> </div> <div class=md-source__repository> owntone/owntone-server </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <nav class=md-tabs aria-label=Tabs data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=.. class=md-tabs__link> Home </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../getting-started/ class=md-tabs__link> Documentation </a> </li> <li class=md-tabs__item> <a href=../json-api/ class=md-tabs__link> JSON API </a> </li> </ul> </div> </nav> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=.. title=OwnTone class="md-nav__button md-logo" aria-label=OwnTone data-md-component=logo> <img src=../assets/logo.svg alt=logo> </a> OwnTone </label> <div class=md-nav__source> <a href=https://github.com/owntone/owntone-server title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 448 512"><!-- Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg> </div> <div class=md-source__repository> owntone/owntone-server </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2 checked> <label class=md-nav__link for=__nav_2 id=__nav_2_label tabindex> <span class=md-ellipsis> Documentation </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=true> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Documentation </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../getting-started/ class=md-nav__link> <span class=md-ellipsis> Getting Started </span> </a> </li> <li class=md-nav__item> <a href=../installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Configuration </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Configuration </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#format class=md-nav__link> <span class=md-ellipsis> Format </span> </a> </li> <li class=md-nav__item> <a href=#general-settings class=md-nav__link> <span class=md-ellipsis> General Settings </span> </a> <nav class=md-nav aria-label="General Settings"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#uid class=md-nav__link> <span class=md-ellipsis> uid </span> </a> </li> <li class=md-nav__item> <a href=#db_path class=md-nav__link> <span class=md-ellipsis> db_path </span> </a> </li> <li class=md-nav__item> <a href=#db_backup_path class=md-nav__link> <span class=md-ellipsis> db_backup_path </span> </a> </li> <li class=md-nav__item> <a href=#logfile class=md-nav__link> <span class=md-ellipsis> logfile </span> </a> </li> <li class=md-nav__item> <a href=#loglevel class=md-nav__link> <span class=md-ellipsis> loglevel </span> </a> </li> <li class=md-nav__item> <a href=#admin_password class=md-nav__link> <span class=md-ellipsis> admin_password </span> </a> </li> <li class=md-nav__item> <a href=#websocket_port class=md-nav__link> <span class=md-ellipsis> websocket_port </span> </a> </li> <li class=md-nav__item> <a href=#websocket_interface class=md-nav__link> <span class=md-ellipsis> websocket_interface </span> </a> </li> <li class=md-nav__item> <a href=#trusted_networks class=md-nav__link> <span class=md-ellipsis> trusted_networks </span> </a> </li> <li class=md-nav__item> <a href=#ipv6 class=md-nav__link> <span class=md-ellipsis> ipv6 </span> </a> </li> <li class=md-nav__item> <a href=#bind_address class=md-nav__link> <span class=md-ellipsis> bind_address </span> </a> </li> <li class=md-nav__item> <a href=#cache_path class=md-nav__link> <span class=md-ellipsis> cache_path </span> </a> </li> <li class=md-nav__item> <a href=#cache_daap_threshold class=md-nav__link> <span class=md-ellipsis> cache_daap_threshold </span> </a> </li> <li class=md-nav__item> <a href=#speaker_autoselect class=md-nav__link> <span class=md-ellipsis> speaker_autoselect </span> </a> </li> <li class=md-nav__item> <a href=#high_resolution_clock class=md-nav__link> <span class=md-ellipsis> high_resolution_clock </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#library-settings class=md-nav__link> <span class=md-ellipsis> Library Settings </span> </a> <nav class=md-nav aria-label="Library Settings"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#name class=md-nav__link> <span class=md-ellipsis> name </span> </a> </li> <li class=md-nav__item> <a href=#port class=md-nav__link> <span class=md-ellipsis> port </span> </a> </li> <li class=md-nav__item> <a href=#password class=md-nav__link> <span class=md-ellipsis> password </span> </a> </li> <li class=md-nav__item> <a href=#directories class=md-nav__link> <span class=md-ellipsis> directories </span> </a> </li> <li class=md-nav__item> <a href=#follow_symlinks class=md-nav__link> <span class=md-ellipsis> follow_symlinks </span> </a> </li> <li class=md-nav__item> <a href=#podcasts class=md-nav__link> <span class=md-ellipsis> podcasts </span> </a> </li> <li class=md-nav__item> <a href=#audiobooks class=md-nav__link> <span class=md-ellipsis> audiobooks </span> </a> </li> <li class=md-nav__item> <a href=#compilations class=md-nav__link> <span class=md-ellipsis> compilations </span> </a> </li> <li class=md-nav__item> <a href=#compilation_artist class=md-nav__link> <span class=md-ellipsis> compilation_artist </span> </a> </li> <li class=md-nav__item> <a href=#hide_singles class=md-nav__link> <span class=md-ellipsis> hide_singles </span> </a> </li> <li class=md-nav__item> <a href=#radio_playlists class=md-nav__link> <span class=md-ellipsis> radio_playlists </span> </a> </li> <li class=md-nav__item> <a href=#name_library class=md-nav__link> <span class=md-ellipsis> name_library </span> </a> </li> <li class=md-nav__item> <a href=#name_music class=md-nav__link> <span class=md-ellipsis> name_music </span> </a> </li> <li class=md-nav__item> <a href=#name_movies class=md-nav__link> <span class=md-ellipsis> name_movies </span> </a> </li> <li class=md-nav__item> <a href=#name_tvshows class=md-nav__link> <span class=md-ellipsis> name_tvshows </span> </a> </li> <li class=md-nav__item> <a href=#name_podcasts class=md-nav__link> <span class=md-ellipsis> name_podcasts </span> </a> </li> <li class=md-nav__item> <a href=#name_audiobooks class=md-nav__link> <span class=md-ellipsis> name_audiobooks </span> </a> </li> <li class=md-nav__item> <a href=#name_radio class=md-nav__link> <span class=md-ellipsis> name_radio </span> </a> </li> <li class=md-nav__item> <a href=#name_unknown_title class=md-nav__link> <span class=md-ellipsis> name_unknown_title </span> </a> </li> <li class=md-nav__item> <a href=#name_unknown_artist class=md-nav__link> <span class=md-ellipsis> name_unknown_artist </span> </a> </li> <li class=md-nav__item> <a href=#name_unknown_album class=md-nav__link> <span class=md-ellipsis> name_unknown_album </span> </a> </li> <li class=md-nav__item> <a href=#name_unknown_genre class=md-nav__link> <span class=md-ellipsis> name_unknown_genre </span> </a> </li> <li class=md-nav__item> <a href=#name_unknown_composer class=md-nav__link> <span class=md-ellipsis> name_unknown_composer </span> </a> </li> <li class=md-nav__item> <a href=#artwork_basenames class=md-nav__link> <span class=md-ellipsis> artwork_basenames </span> </a> </li> <li class=md-nav__item> <a href=#artwork_individual class=md-nav__link> <span class=md-ellipsis> artwork_individual </span> </a> </li> <li class=md-nav__item> <a href=#artwork_online_sources class=md-nav__link> <span class=md-ellipsis> artwork_online_sources </span> </a> </li> <li class=md-nav__item> <a href=#filetypes_ignore class=md-nav__link> <span class=md-ellipsis> filetypes_ignore </span> </a> </li> <li class=md-nav__item> <a href=#filepath_ignore class=md-nav__link> <span class=md-ellipsis> filepath_ignore </span> </a> </li> <li class=md-nav__item> <a href=#filescan_disable class=md-nav__link> <span class=md-ellipsis> filescan_disable </span> </a> </li> <li class=md-nav__item> <a href=#only_first_genre class=md-nav__link> <span class=md-ellipsis> only_first_genre </span> </a> </li> <li class=md-nav__item> <a href=#m3u_overrides class=md-nav__link> <span class=md-ellipsis> m3u_overrides </span> </a> </li> <li class=md-nav__item> <a href=#itunes_overrides class=md-nav__link> <span class=md-ellipsis> itunes_overrides </span> </a> </li> <li class=md-nav__item> <a href=#itunes_smartpl class=md-nav__link> <span class=md-ellipsis> itunes_smartpl </span> </a> </li> <li class=md-nav__item> <a href=#no_decode class=md-nav__link> <span class=md-ellipsis> no_decode </span> </a> </li> <li class=md-nav__item> <a href=#force_decode class=md-nav__link> <span class=md-ellipsis> force_decode </span> </a> </li> <li class=md-nav__item> <a href=#prefer_format class=md-nav__link> <span class=md-ellipsis> prefer_format </span> </a> </li> <li class=md-nav__item> <a href=#decode_audio_filters class=md-nav__link> <span class=md-ellipsis> decode_audio_filters </span> </a> </li> <li class=md-nav__item> <a href=#decode_video_filters class=md-nav__link> <span class=md-ellipsis> decode_video_filters </span> </a> </li> <li class=md-nav__item> <a href=#pipe_autostart class=md-nav__link> <span class=md-ellipsis> pipe_autostart </span> </a> </li> <li class=md-nav__item> <a href=#pipe_sample_rate class=md-nav__link> <span class=md-ellipsis> pipe_sample_rate </span> </a> </li> <li class=md-nav__item> <a href=#pipe_bits_per_sample class=md-nav__link> <span class=md-ellipsis> pipe_bits_per_sample </span> </a> </li> <li class=md-nav__item> <a href=#rating_updates class=md-nav__link> <span class=md-ellipsis> rating_updates </span> </a> </li> <li class=md-nav__item> <a href=#read_rating class=md-nav__link> <span class=md-ellipsis> read_rating </span> </a> </li> <li class=md-nav__item> <a href=#write_rating class=md-nav__link> <span class=md-ellipsis> write_rating </span> </a> </li> <li class=md-nav__item> <a href=#max_rating class=md-nav__link> <span class=md-ellipsis> max_rating </span> </a> </li> <li class=md-nav__item> <a href=#allow_modifying_stored_playlists class=md-nav__link> <span class=md-ellipsis> allow_modifying_stored_playlists </span> </a> </li> <li class=md-nav__item> <a href=#default_playlist_directory class=md-nav__link> <span class=md-ellipsis> default_playlist_directory </span> </a> </li> <li class=md-nav__item> <a href=#clear_queue_on_stop_disable class=md-nav__link> <span class=md-ellipsis> clear_queue_on_stop_disable </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#local-audio-settings class=md-nav__link> <span class=md-ellipsis> Local Audio Settings </span> </a> <nav class=md-nav aria-label="Local Audio Settings"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#nickname class=md-nav__link> <span class=md-ellipsis> nickname </span> </a> </li> <li class=md-nav__item> <a href=#type class=md-nav__link> <span class=md-ellipsis> type </span> </a> </li> <li class=md-nav__item> <a href=#mixer class=md-nav__link> <span class=md-ellipsis> mixer </span> </a> </li> <li class=md-nav__item> <a href=#mixer_device class=md-nav__link> <span class=md-ellipsis> mixer_device </span> </a> </li> <li class=md-nav__item> <a href=#sync_disable class=md-nav__link> <span class=md-ellipsis> sync_disable </span> </a> </li> <li class=md-nav__item> <a href=#offset_ms class=md-nav__link> <span class=md-ellipsis> offset_ms </span> </a> </li> <li class=md-nav__item> <a href=#adjust_period_seconds class=md-nav__link> <span class=md-ellipsis> adjust_period_seconds </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#per-alsa-device-settings class=md-nav__link> <span class=md-ellipsis> Per ALSA Device Settings </span> </a> <nav class=md-nav aria-label="Per ALSA Device Settings"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#nickname_1 class=md-nav__link> <span class=md-ellipsis> nickname </span> </a> </li> <li class=md-nav__item> <a href=#mixer_1 class=md-nav__link> <span class=md-ellipsis> mixer </span> </a> </li> <li class=md-nav__item> <a href=#mixer_device_1 class=md-nav__link> <span class=md-ellipsis> mixer_device </span> </a> </li> <li class=md-nav__item> <a href=#offset_ms_1 class=md-nav__link> <span class=md-ellipsis> offset_ms </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#fifo-settings class=md-nav__link> <span class=md-ellipsis> FIFO Settings </span> </a> <nav class=md-nav aria-label="FIFO Settings"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#nickname_2 class=md-nav__link> <span class=md-ellipsis> nickname </span> </a> </li> <li class=md-nav__item> <a href=#path class=md-nav__link> <span class=md-ellipsis> path </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#shared-airplay-settings class=md-nav__link> <span class=md-ellipsis> Shared AirPlay Settings </span> </a> <nav class=md-nav aria-label="Shared AirPlay Settings"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#control_port class=md-nav__link> <span class=md-ellipsis> control_port </span> </a> </li> <li class=md-nav__item> <a href=#timing_port class=md-nav__link> <span class=md-ellipsis> timing_port </span> </a> </li> <li class=md-nav__item> <a href=#uncompressed_alac class=md-nav__link> <span class=md-ellipsis> uncompressed_alac </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#per-airplay-device-settings class=md-nav__link> <span class=md-ellipsis> Per AirPlay Device Settings </span> </a> <nav class=md-nav aria-label="Per AirPlay Device Settings"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#max_volume class=md-nav__link> <span class=md-ellipsis> max_volume </span> </a> </li> <li class=md-nav__item> <a href=#exclude class=md-nav__link> <span class=md-ellipsis> exclude </span> </a> </li> <li class=md-nav__item> <a href=#permanent class=md-nav__link> <span class=md-ellipsis> permanent </span> </a> </li> <li class=md-nav__item> <a href=#reconnect class=md-nav__link> <span class=md-ellipsis> reconnect </span> </a> </li> <li class=md-nav__item> <a href=#password_1 class=md-nav__link> <span class=md-ellipsis> password </span> </a> </li> <li class=md-nav__item> <a href=#raop_disable class=md-nav__link> <span class=md-ellipsis> raop_disable </span> </a> </li> <li class=md-nav__item> <a href=#nickname_3 class=md-nav__link> <span class=md-ellipsis> nickname </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#per-chromecast-device-settings class=md-nav__link> <span class=md-ellipsis> Per Chromecast Device Settings </span> </a> <nav class=md-nav aria-label="Per Chromecast Device Settings"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#max_volume_1 class=md-nav__link> <span class=md-ellipsis> max_volume </span> </a> </li> <li class=md-nav__item> <a href=#exclude_1 class=md-nav__link> <span class=md-ellipsis> exclude </span> </a> </li> <li class=md-nav__item> <a href=#nickname_4 class=md-nav__link> <span class=md-ellipsis> nickname </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#spotify-settings class=md-nav__link> <span class=md-ellipsis> Spotify Settings </span> </a> <nav class=md-nav aria-label="Spotify Settings"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#bitrate class=md-nav__link> <span class=md-ellipsis> bitrate </span> </a> </li> <li class=md-nav__item> <a href=#base_playlist_disable class=md-nav__link> <span class=md-ellipsis> base_playlist_disable </span> </a> </li> <li class=md-nav__item> <a href=#artist_override class=md-nav__link> <span class=md-ellipsis> artist_override </span> </a> </li> <li class=md-nav__item> <a href=#album_override class=md-nav__link> <span class=md-ellipsis> album_override </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#rcp-roku-soundbridge-settings class=md-nav__link> <span class=md-ellipsis> RCP / Roku Soundbridge Settings </span> </a> <nav class=md-nav aria-label="RCP / Roku Soundbridge Settings"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#exclude_2 class=md-nav__link> <span class=md-ellipsis> exclude </span> </a> </li> <li class=md-nav__item> <a href=#clear_on_close class=md-nav__link> <span class=md-ellipsis> clear_on_close </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#mpd-settings class=md-nav__link> <span class=md-ellipsis> MPD Settings </span> </a> <nav class=md-nav aria-label="MPD Settings"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#port_1 class=md-nav__link> <span class=md-ellipsis> port </span> </a> </li> <li class=md-nav__item> <a href=#http_port class=md-nav__link> <span class=md-ellipsis> http_port </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#sqlite-settings class=md-nav__link> <span class=md-ellipsis> SQLite Settings </span> </a> <nav class=md-nav aria-label="SQLite Settings"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#pragma_cache_size_library class=md-nav__link> <span class=md-ellipsis> pragma_cache_size_library </span> </a> </li> <li class=md-nav__item> <a href=#pragma_cache_size_cache class=md-nav__link> <span class=md-ellipsis> pragma_cache_size_cache </span> </a> </li> <li class=md-nav__item> <a href=#pragma_journal_mode class=md-nav__link> <span class=md-ellipsis> pragma_journal_mode </span> </a> </li> <li class=md-nav__item> <a href=#pragma_synchronous class=md-nav__link> <span class=md-ellipsis> pragma_synchronous </span> </a> </li> <li class=md-nav__item> <a href=#pragma_mmap_size_library class=md-nav__link> <span class=md-ellipsis> pragma_mmap_size_library </span> </a> </li> <li class=md-nav__item> <a href=#pragma_mmap_size_cache class=md-nav__link> <span class=md-ellipsis> pragma_mmap_size_cache </span> </a> </li> <li class=md-nav__item> <a href=#vacuum class=md-nav__link> <span class=md-ellipsis> vacuum </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#streaming-settings class=md-nav__link> <span class=md-ellipsis> Streaming Settings </span> </a> <nav class=md-nav aria-label="Streaming Settings"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#sample_rate class=md-nav__link> <span class=md-ellipsis> sample_rate </span> </a> </li> <li class=md-nav__item> <a href=#bit_rate class=md-nav__link> <span class=md-ellipsis> bit_rate </span> </a> </li> <li class=md-nav__item> <a href=#icy_metaint class=md-nav__link> <span class=md-ellipsis> icy_metaint </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../building/ class=md-nav__link> <span class=md-ellipsis> Building </span> </a> </li> <li class=md-nav__item> <a href=../library/ class=md-nav__link> <span class=md-ellipsis> Library </span> </a> </li> <li class=md-nav__item> <a href=../artwork/ class=md-nav__link> <span class=md-ellipsis> Artwork </span> </a> </li> <li class=md-nav__item> <a href=../playlists/ class=md-nav__link> <span class=md-ellipsis> Playlists and Radio </span> </a> </li> <li class=md-nav__item> <a href=../smart-playlists/ class=md-nav__link> <span class=md-ellipsis> Smart Playlists </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2_9> <label class=md-nav__link for=__nav_2_9 id=__nav_2_9_label tabindex=0> <span class=md-ellipsis> Clients </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_2_9_label aria-expanded=false> <label class=md-nav__title for=__nav_2_9> <span class="md-nav__icon md-icon"></span> Clients </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../clients/supported-clients/ class=md-nav__link> <span class=md-ellipsis> Supported Clients </span> </a> </li> <li class=md-nav__item> <a href=../clients/remote/ class=md-nav__link> <span class=md-ellipsis> Remote </span> </a> </li> <li class=md-nav__item> <a href=../clients/web-interface/ class=md-nav__link> <span class=md-ellipsis> Web Interface </span> </a> </li> <li class=md-nav__item> <a href=../clients/mpd/ class=md-nav__link> <span class=md-ellipsis> MPD Clients </span> </a> </li> <li class=md-nav__item> <a href=../clients/cli/ class=md-nav__link> <span class=md-ellipsis> Command Line </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2_10> <label class=md-nav__link for=__nav_2_10 id=__nav_2_10_label tabindex=0> <span class=md-ellipsis> Outputs </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_2_10_label aria-expanded=false> <label class=md-nav__title for=__nav_2_10> <span class="md-nav__icon md-icon"></span> Outputs </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../outputs/local-audio/ class=md-nav__link> <span class=md-ellipsis> Local Audio </span> </a> </li> <li class=md-nav__item> <a href=../outputs/airplay/ class=md-nav__link> <span class=md-ellipsis> AirPlay </span> </a> </li> <li class=md-nav__item> <a href=../outputs/chromecast/ class=md-nav__link> <span class=md-ellipsis> Chromecast </span> </a> </li> <li class=md-nav__item> <a href=../outputs/streaming/ class=md-nav__link> <span class=md-ellipsis> Streaming </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2_11> <label class=md-nav__link for=__nav_2_11 id=__nav_2_11_label tabindex=0> <span class=md-ellipsis> Services Integration </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_2_11_label aria-expanded=false> <label class=md-nav__title for=__nav_2_11> <span class="md-nav__icon md-icon"></span> Services Integration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../integrations/spotify/ class=md-nav__link> <span class=md-ellipsis> Spotify </span> </a> </li> <li class=md-nav__item> <a href=../integrations/lastfm/ class=md-nav__link> <span class=md-ellipsis> LastFM </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_2_12> <label class=md-nav__link for=__nav_2_12 id=__nav_2_12_label tabindex=0> <span class=md-ellipsis> Advanced Setup </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_2_12_label aria-expanded=false> <label class=md-nav__title for=__nav_2_12> <span class="md-nav__icon md-icon"></span> Advanced Setup </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../advanced/outputs-alsa/ class=md-nav__link> <span class=md-ellipsis> ALSA </span> </a> </li> <li class=md-nav__item> <a href=../advanced/outputs-pulse/ class=md-nav__link> <span class=md-ellipsis> PulseAudio </span> </a> </li> <li class=md-nav__item> <a href=../advanced/radio-streams/ class=md-nav__link> <span class=md-ellipsis> Radio Streams </span> </a> </li> <li class=md-nav__item> <a href=../advanced/remote-access/ class=md-nav__link> <span class=md-ellipsis> Remote Access </span> </a> </li> <li class=md-nav__item> <a href=../advanced/multiple-instances/ class=md-nav__link> <span class=md-ellipsis> Multiple Instances </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../json-api/ class=md-nav__link> <span class=md-ellipsis> JSON API </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#format class=md-nav__link> <span class=md-ellipsis> Format </span> </a> </li> <li class=md-nav__item> <a href=#general-settings class=md-nav__link> <span class=md-ellipsis> General Settings </span> </a> <nav class=md-nav aria-label="General Settings"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#uid class=md-nav__link> <span class=md-ellipsis> uid </span> </a> </li> <li class=md-nav__item> <a href=#db_path class=md-nav__link> <span class=md-ellipsis> db_path </span> </a> </li> <li class=md-nav__item> <a href=#db_backup_path class=md-nav__link> <span class=md-ellipsis> db_backup_path </span> </a> </li> <li class=md-nav__item> <a href=#logfile class=md-nav__link> <span class=md-ellipsis> logfile </span> </a> </li> <li class=md-nav__item> <a href=#loglevel class=md-nav__link> <span class=md-ellipsis> loglevel </span> </a> </li> <li class=md-nav__item> <a href=#admin_password class=md-nav__link> <span class=md-ellipsis> admin_password </span> </a> </li> <li class=md-nav__item> <a href=#websocket_port class=md-nav__link> <span class=md-ellipsis> websocket_port </span> </a> </li> <li class=md-nav__item> <a href=#websocket_interface class=md-nav__link> <span class=md-ellipsis> websocket_interface </span> </a> </li> <li class=md-nav__item> <a href=#trusted_networks class=md-nav__link> <span class=md-ellipsis> trusted_networks </span> </a> </li> <li class=md-nav__item> <a href=#ipv6 class=md-nav__link> <span class=md-ellipsis> ipv6 </span> </a> </li> <li class=md-nav__item> <a href=#bind_address class=md-nav__link> <span class=md-ellipsis> bind_address </span> </a> </li> <li class=md-nav__item> <a href=#cache_path class=md-nav__link> <span class=md-ellipsis> cache_path </span> </a> </li> <li class=md-nav__item> <a href=#cache_daap_threshold class=md-nav__link> <span class=md-ellipsis> cache_daap_threshold </span> </a> </li> <li class=md-nav__item> <a href=#speaker_autoselect class=md-nav__link> <span class=md-ellipsis> speaker_autoselect </span> </a> </li> <li class=md-nav__item> <a href=#high_resolution_clock class=md-nav__link> <span class=md-ellipsis> high_resolution_clock </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#library-settings class=md-nav__link> <span class=md-ellipsis> Library Settings </span> </a> <nav class=md-nav aria-label="Library Settings"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#name class=md-nav__link> <span class=md-ellipsis> name </span> </a> </li> <li class=md-nav__item> <a href=#port class=md-nav__link> <span class=md-ellipsis> port </span> </a> </li> <li class=md-nav__item> <a href=#password class=md-nav__link> <span class=md-ellipsis> password </span> </a> </li> <li class=md-nav__item> <a href=#directories class=md-nav__link> <span class=md-ellipsis> directories </span> </a> </li> <li class=md-nav__item> <a href=#follow_symlinks class=md-nav__link> <span class=md-ellipsis> follow_symlinks </span> </a> </li> <li class=md-nav__item> <a href=#podcasts class=md-nav__link> <span class=md-ellipsis> podcasts </span> </a> </li> <li class=md-nav__item> <a href=#audiobooks class=md-nav__link> <span class=md-ellipsis> audiobooks </span> </a> </li> <li class=md-nav__item> <a href=#compilations class=md-nav__link> <span class=md-ellipsis> compilations </span> </a> </li> <li class=md-nav__item> <a href=#compilation_artist class=md-nav__link> <span class=md-ellipsis> compilation_artist </span> </a> </li> <li class=md-nav__item> <a href=#hide_singles class=md-nav__link> <span class=md-ellipsis> hide_singles </span> </a> </li> <li class=md-nav__item> <a href=#radio_playlists class=md-nav__link> <span class=md-ellipsis> radio_playlists </span> </a> </li> <li class=md-nav__item> <a href=#name_library class=md-nav__link> <span class=md-ellipsis> name_library </span> </a> </li> <li class=md-nav__item> <a href=#name_music class=md-nav__link> <span class=md-ellipsis> name_music </span> </a> </li> <li class=md-nav__item> <a href=#name_movies class=md-nav__link> <span class=md-ellipsis> name_movies </span> </a> </li> <li class=md-nav__item> <a href=#name_tvshows class=md-nav__link> <span class=md-ellipsis> name_tvshows </span> </a> </li> <li class=md-nav__item> <a href=#name_podcasts class=md-nav__link> <span class=md-ellipsis> name_podcasts </span> </a> </li> <li class=md-nav__item> <a href=#name_audiobooks class=md-nav__link> <span class=md-ellipsis> name_audiobooks </span> </a> </li> <li class=md-nav__item> <a href=#name_radio class=md-nav__link> <span class=md-ellipsis> name_radio </span> </a> </li> <li class=md-nav__item> <a href=#name_unknown_title class=md-nav__link> <span class=md-ellipsis> name_unknown_title </span> </a> </li> <li class=md-nav__item> <a href=#name_unknown_artist class=md-nav__link> <span class=md-ellipsis> name_unknown_artist </span> </a> </li> <li class=md-nav__item> <a href=#name_unknown_album class=md-nav__link> <span class=md-ellipsis> name_unknown_album </span> </a> </li> <li class=md-nav__item> <a href=#name_unknown_genre class=md-nav__link> <span class=md-ellipsis> name_unknown_genre </span> </a> </li> <li class=md-nav__item> <a href=#name_unknown_composer class=md-nav__link> <span class=md-ellipsis> name_unknown_composer </span> </a> </li> <li class=md-nav__item> <a href=#artwork_basenames class=md-nav__link> <span class=md-ellipsis> artwork_basenames </span> </a> </li> <li class=md-nav__item> <a href=#artwork_individual class=md-nav__link> <span class=md-ellipsis> artwork_individual </span> </a> </li> <li class=md-nav__item> <a href=#artwork_online_sources class=md-nav__link> <span class=md-ellipsis> artwork_online_sources </span> </a> </li> <li class=md-nav__item> <a href=#filetypes_ignore class=md-nav__link> <span class=md-ellipsis> filetypes_ignore </span> </a> </li> <li class=md-nav__item> <a href=#filepath_ignore class=md-nav__link> <span class=md-ellipsis> filepath_ignore </span> </a> </li> <li class=md-nav__item> <a href=#filescan_disable class=md-nav__link> <span class=md-ellipsis> filescan_disable </span> </a> </li> <li class=md-nav__item> <a href=#only_first_genre class=md-nav__link> <span class=md-ellipsis> only_first_genre </span> </a> </li> <li class=md-nav__item> <a href=#m3u_overrides class=md-nav__link> <span class=md-ellipsis> m3u_overrides </span> </a> </li> <li class=md-nav__item> <a href=#itunes_overrides class=md-nav__link> <span class=md-ellipsis> itunes_overrides </span> </a> </li> <li class=md-nav__item> <a href=#itunes_smartpl class=md-nav__link> <span class=md-ellipsis> itunes_smartpl </span> </a> </li> <li class=md-nav__item> <a href=#no_decode class=md-nav__link> <span class=md-ellipsis> no_decode </span> </a> </li> <li class=md-nav__item> <a href=#force_decode class=md-nav__link> <span class=md-ellipsis> force_decode </span> </a> </li> <li class=md-nav__item> <a href=#prefer_format class=md-nav__link> <span class=md-ellipsis> prefer_format </span> </a> </li> <li class=md-nav__item> <a href=#decode_audio_filters class=md-nav__link> <span class=md-ellipsis> decode_audio_filters </span> </a> </li> <li class=md-nav__item> <a href=#decode_video_filters class=md-nav__link> <span class=md-ellipsis> decode_video_filters </span> </a> </li> <li class=md-nav__item> <a href=#pipe_autostart class=md-nav__link> <span class=md-ellipsis> pipe_autostart </span> </a> </li> <li class=md-nav__item> <a href=#pipe_sample_rate class=md-nav__link> <span class=md-ellipsis> pipe_sample_rate </span> </a> </li> <li class=md-nav__item> <a href=#pipe_bits_per_sample class=md-nav__link> <span class=md-ellipsis> pipe_bits_per_sample </span> </a> </li> <li class=md-nav__item> <a href=#rating_updates class=md-nav__link> <span class=md-ellipsis> rating_updates </span> </a> </li> <li class=md-nav__item> <a href=#read_rating class=md-nav__link> <span class=md-ellipsis> read_rating </span> </a> </li> <li class=md-nav__item> <a href=#write_rating class=md-nav__link> <span class=md-ellipsis> write_rating </span> </a> </li> <li class=md-nav__item> <a href=#max_rating class=md-nav__link> <span class=md-ellipsis> max_rating </span> </a> </li> <li class=md-nav__item> <a href=#allow_modifying_stored_playlists class=md-nav__link> <span class=md-ellipsis> allow_modifying_stored_playlists </span> </a> </li> <li class=md-nav__item> <a href=#default_playlist_directory class=md-nav__link> <span class=md-ellipsis> default_playlist_directory </span> </a> </li> <li class=md-nav__item> <a href=#clear_queue_on_stop_disable class=md-nav__link> <span class=md-ellipsis> clear_queue_on_stop_disable </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#local-audio-settings class=md-nav__link> <span class=md-ellipsis> Local Audio Settings </span> </a> <nav class=md-nav aria-label="Local Audio Settings"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#nickname class=md-nav__link> <span class=md-ellipsis> nickname </span> </a> </li> <li class=md-nav__item> <a href=#type class=md-nav__link> <span class=md-ellipsis> type </span> </a> </li> <li class=md-nav__item> <a href=#mixer class=md-nav__link> <span class=md-ellipsis> mixer </span> </a> </li> <li class=md-nav__item> <a href=#mixer_device class=md-nav__link> <span class=md-ellipsis> mixer_device </span> </a> </li> <li class=md-nav__item> <a href=#sync_disable class=md-nav__link> <span class=md-ellipsis> sync_disable </span> </a> </li> <li class=md-nav__item> <a href=#offset_ms class=md-nav__link> <span class=md-ellipsis> offset_ms </span> </a> </li> <li class=md-nav__item> <a href=#adjust_period_seconds class=md-nav__link> <span class=md-ellipsis> adjust_period_seconds </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#per-alsa-device-settings class=md-nav__link> <span class=md-ellipsis> Per ALSA Device Settings </span> </a> <nav class=md-nav aria-label="Per ALSA Device Settings"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#nickname_1 class=md-nav__link> <span class=md-ellipsis> nickname </span> </a> </li> <li class=md-nav__item> <a href=#mixer_1 class=md-nav__link> <span class=md-ellipsis> mixer </span> </a> </li> <li class=md-nav__item> <a href=#mixer_device_1 class=md-nav__link> <span class=md-ellipsis> mixer_device </span> </a> </li> <li class=md-nav__item> <a href=#offset_ms_1 class=md-nav__link> <span class=md-ellipsis> offset_ms </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#fifo-settings class=md-nav__link> <span class=md-ellipsis> FIFO Settings </span> </a> <nav class=md-nav aria-label="FIFO Settings"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#nickname_2 class=md-nav__link> <span class=md-ellipsis> nickname </span> </a> </li> <li class=md-nav__item> <a href=#path class=md-nav__link> <span class=md-ellipsis> path </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#shared-airplay-settings class=md-nav__link> <span class=md-ellipsis> Shared AirPlay Settings </span> </a> <nav class=md-nav aria-label="Shared AirPlay Settings"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#control_port class=md-nav__link> <span class=md-ellipsis> control_port </span> </a> </li> <li class=md-nav__item> <a href=#timing_port class=md-nav__link> <span class=md-ellipsis> timing_port </span> </a> </li> <li class=md-nav__item> <a href=#uncompressed_alac class=md-nav__link> <span class=md-ellipsis> uncompressed_alac </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#per-airplay-device-settings class=md-nav__link> <span class=md-ellipsis> Per AirPlay Device Settings </span> </a> <nav class=md-nav aria-label="Per AirPlay Device Settings"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#max_volume class=md-nav__link> <span class=md-ellipsis> max_volume </span> </a> </li> <li class=md-nav__item> <a href=#exclude class=md-nav__link> <span class=md-ellipsis> exclude </span> </a> </li> <li class=md-nav__item> <a href=#permanent class=md-nav__link> <span class=md-ellipsis> permanent </span> </a> </li> <li class=md-nav__item> <a href=#reconnect class=md-nav__link> <span class=md-ellipsis> reconnect </span> </a> </li> <li class=md-nav__item> <a href=#password_1 class=md-nav__link> <span class=md-ellipsis> password </span> </a> </li> <li class=md-nav__item> <a href=#raop_disable class=md-nav__link> <span class=md-ellipsis> raop_disable </span> </a> </li> <li class=md-nav__item> <a href=#nickname_3 class=md-nav__link> <span class=md-ellipsis> nickname </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#per-chromecast-device-settings class=md-nav__link> <span class=md-ellipsis> Per Chromecast Device Settings </span> </a> <nav class=md-nav aria-label="Per Chromecast Device Settings"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#max_volume_1 class=md-nav__link> <span class=md-ellipsis> max_volume </span> </a> </li> <li class=md-nav__item> <a href=#exclude_1 class=md-nav__link> <span class=md-ellipsis> exclude </span> </a> </li> <li class=md-nav__item> <a href=#nickname_4 class=md-nav__link> <span class=md-ellipsis> nickname </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#spotify-settings class=md-nav__link> <span class=md-ellipsis> Spotify Settings </span> </a> <nav class=md-nav aria-label="Spotify Settings"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#bitrate class=md-nav__link> <span class=md-ellipsis> bitrate </span> </a> </li> <li class=md-nav__item> <a href=#base_playlist_disable class=md-nav__link> <span class=md-ellipsis> base_playlist_disable </span> </a> </li> <li class=md-nav__item> <a href=#artist_override class=md-nav__link> <span class=md-ellipsis> artist_override </span> </a> </li> <li class=md-nav__item> <a href=#album_override class=md-nav__link> <span class=md-ellipsis> album_override </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#rcp-roku-soundbridge-settings class=md-nav__link> <span class=md-ellipsis> RCP / Roku Soundbridge Settings </span> </a> <nav class=md-nav aria-label="RCP / Roku Soundbridge Settings"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#exclude_2 class=md-nav__link> <span class=md-ellipsis> exclude </span> </a> </li> <li class=md-nav__item> <a href=#clear_on_close class=md-nav__link> <span class=md-ellipsis> clear_on_close </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#mpd-settings class=md-nav__link> <span class=md-ellipsis> MPD Settings </span> </a> <nav class=md-nav aria-label="MPD Settings"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#port_1 class=md-nav__link> <span class=md-ellipsis> port </span> </a> </li> <li class=md-nav__item> <a href=#http_port class=md-nav__link> <span class=md-ellipsis> http_port </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#sqlite-settings class=md-nav__link> <span class=md-ellipsis> SQLite Settings </span> </a> <nav class=md-nav aria-label="SQLite Settings"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#pragma_cache_size_library class=md-nav__link> <span class=md-ellipsis> pragma_cache_size_library </span> </a> </li> <li class=md-nav__item> <a href=#pragma_cache_size_cache class=md-nav__link> <span class=md-ellipsis> pragma_cache_size_cache </span> </a> </li> <li class=md-nav__item> <a href=#pragma_journal_mode class=md-nav__link> <span class=md-ellipsis> pragma_journal_mode </span> </a> </li> <li class=md-nav__item> <a href=#pragma_synchronous class=md-nav__link> <span class=md-ellipsis> pragma_synchronous </span> </a> </li> <li class=md-nav__item> <a href=#pragma_mmap_size_library class=md-nav__link> <span class=md-ellipsis> pragma_mmap_size_library </span> </a> </li> <li class=md-nav__item> <a href=#pragma_mmap_size_cache class=md-nav__link> <span class=md-ellipsis> pragma_mmap_size_cache </span> </a> </li> <li class=md-nav__item> <a href=#vacuum class=md-nav__link> <span class=md-ellipsis> vacuum </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#streaming-settings class=md-nav__link> <span class=md-ellipsis> Streaming Settings </span> </a> <nav class=md-nav aria-label="Streaming Settings"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#sample_rate class=md-nav__link> <span class=md-ellipsis> sample_rate </span> </a> </li> <li class=md-nav__item> <a href=#bit_rate class=md-nav__link> <span class=md-ellipsis> bit_rate </span> </a> </li> <li class=md-nav__item> <a href=#icy_metaint class=md-nav__link> <span class=md-ellipsis> icy_metaint </span> </a> </li> </ul> </nav> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=configuration>Configuration<a class=headerlink href=#configuration title="Permanent link">&para;</a></h1> <p>The configuration of OwnTone - usually located in <code>/etc/owntone.conf</code> - is split into multiple sections:</p> <ul> <li><a href=#general-settings><code>general</code></a> - Main settings of OwnTone.</li> <li><a href=#library-settings><code>library</code></a> - Settings of local library.</li> <li><a href=#local-audio-settings><code>audio</code></a> - Settings for the local audio.</li> <li><a href=#per-alsa-device-settings><code>alsa</code></a> - Settings for ALSA devices.</li> <li><a href=#fifo-settings><code>fifo</code></a> - Settings for named pipe.</li> <li><a href=#shared-airplay-settings><code>airplay_shared</code></a> - Settings shared across AirPlay devices.</li> <li><a href=#per-airplay-device-settings><code>airplay</code></a> - Settings for a specific AirPlay device.</li> <li><a href=#per-chromecast-device-settings><code>chromecast</code></a> - Settings for a specific Chromecast device.</li> <li><a href=#spotify-settings><code>spotify</code></a> - Settings for the Spotify playback.</li> <li><a href=#rcp--roku-soundbridge-settings><code>rcp</code></a> - Settings for RCP / Roku Soundbridge devices.</li> <li><a href=#mpd-settings><code>mpd</code></a> - Settings for MPD clients.</li> <li><a href=#sqlite-settings><code>sqlite</code></a> - Settings for SQLite operation.</li> <li><a href=#streaming-settings><code>streaming</code></a> - Settings for the streaming.</li> </ul> <h2 id=format>Format<a class=headerlink href=#format title="Permanent link">&para;</a></h2> <p>Each section consists of a name enclosing settings within parentheses.</p> <p>Each setting consists of a name and a value. There are different types of settings: string, integer, boolean, and list.</p> <p>Comments are preceded by a hash sign.</p> <p>The format is as follow:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a># Section
<a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>section {
<a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a> # String value
<a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> setting = &quot;&lt;string-value&gt;&quot;
<a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a> # Integer value
<a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a> setting = &lt;integer-value&gt;
<a id=__codelineno-0-7 name=__codelineno-0-7 href=#__codelineno-0-7></a> # Boolean
<a id=__codelineno-0-8 name=__codelineno-0-8 href=#__codelineno-0-8></a> setting = &lt;true|false&gt;
<a id=__codelineno-0-9 name=__codelineno-0-9 href=#__codelineno-0-9></a> # List
<a id=__codelineno-0-10 name=__codelineno-0-10 href=#__codelineno-0-10></a> setting = { &quot;value a&quot;, &quot;value b&quot;, &quot;value n&quot;}
<a id=__codelineno-0-11 name=__codelineno-0-11 href=#__codelineno-0-11></a>}
</code></pre></div> <p><strong>Note:</strong> For a regular use, the most important settings are:</p> <ul> <li>the <code>directories</code> (see <a href=#library-settings><code>library</code></a> section), which should be the location of your media, and</li> <li>the <code>uid</code> (see <a href=#general-settings><code>general</code></a> section), which must have read access to those directories.</li> </ul> <h2 id=general-settings>General Settings<a class=headerlink href=#general-settings title="Permanent link">&para;</a></h2> <div class=highlight><pre><span></span><code><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a>general {
<a id=__codelineno-1-2 name=__codelineno-1-2 href=#__codelineno-1-2></a>
<a id=__codelineno-1-3 name=__codelineno-1-3 href=#__codelineno-1-3></a>}
</code></pre></div> <p>The <code>general</code> section accepts the settings below.</p> <h3 id=uid>uid<a class=headerlink href=#uid title="Permanent link">&para;</a></h3> <p>Identifier of the user running OwnTone.</p> <p><strong>Notes:</strong></p> <ul> <li>Make sure that this user has read access to the <code>directories</code> (<a href=#library-settings><code>library</code></a> section) section and write access to the database (<code>db_path</code>), log file (<code>logfile</code>) and local audio (<a href=#local-audio-settings><code>audio</code></a> section).</li> <li>This setting is mandatory.</li> </ul> <p><strong>Default:</strong> <code>"nobody"</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a>uid = &quot;&lt;user-identifier&gt;&quot;
</code></pre></div> <h3 id=db_path>db_path<a class=headerlink href=#db_path title="Permanent link">&para;</a></h3> <p>Full path to the database file.</p> <p><strong>Note:</strong> This setting is mandatory.</p> <p><strong>Default:</strong> <code>"/var/cache/owntone/songs3.db"</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-3-1 name=__codelineno-3-1 href=#__codelineno-3-1></a>db_path = &quot;&lt;path-to-database-file&gt;&quot;
</code></pre></div> <h3 id=db_backup_path>db_backup_path<a class=headerlink href=#db_backup_path title="Permanent link">&para;</a></h3> <p>Full path to the database file backup.</p> <p><strong>Note:</strong> Backups are triggered from an API endpoint.</p> <p><strong>Default:</strong> unset</p> <div class=highlight><pre><span></span><code><a id=__codelineno-4-1 name=__codelineno-4-1 href=#__codelineno-4-1></a>db_backup_path = &quot;&lt;path-to-database-backup-file&gt;&quot;
</code></pre></div> <h3 id=logfile>logfile<a class=headerlink href=#logfile title="Permanent link">&para;</a></h3> <p>Full path to the log file.</p> <p><strong>Default:</strong> <code>"/var/log/owntone.log"</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-5-1 name=__codelineno-5-1 href=#__codelineno-5-1></a>logfile = &quot;&lt;path-to-log-file&gt;&quot;
</code></pre></div> <h3 id=loglevel>loglevel<a class=headerlink href=#loglevel title="Permanent link">&para;</a></h3> <p>Level of verbosity of the logging.</p> <p><strong>Note:</strong> There are 6 levels of verbosity (hereunder from the less verbose to the most verbose). The level <code>log</code> is recommended for regular usage.</p> <p><strong>Valid values:</strong> <code>fatal</code>, <code>log</code>, <code>warning</code>, <code>info</code>, <code>debug</code>, <code>spam</code></p> <p><strong>Default:</strong> <code>"log"</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-6-1 name=__codelineno-6-1 href=#__codelineno-6-1></a>loglevel = &quot;&lt;fatal|log|warning|info|debug|spam&gt;&quot;
</code></pre></div> <h3 id=admin_password>admin_password<a class=headerlink href=#admin_password title="Permanent link">&para;</a></h3> <p>Password for the web interface.</p> <p><strong>Note:</strong> If a user is accessing the web interface from a device located in one of the <code>trusted_networks</code>, no password is required.</p> <p><strong>Default:</strong> unset</p> <div class=highlight><pre><span></span><code><a id=__codelineno-7-1 name=__codelineno-7-1 href=#__codelineno-7-1></a>admin_password = &quot;&lt;password&gt;&quot;
</code></pre></div> <h3 id=websocket_port>websocket_port<a class=headerlink href=#websocket_port title="Permanent link">&para;</a></h3> <p>Port number used to answer requests from the web interface.</p> <p><strong>Default:</strong> <code>3688</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-8-1 name=__codelineno-8-1 href=#__codelineno-8-1></a>websocket_port = &lt;port-number&gt;
</code></pre></div> <h3 id=websocket_interface>websocket_interface<a class=headerlink href=#websocket_interface title="Permanent link">&para;</a></h3> <p>Network interface on which the web socket is listening: e.g., eth0, en0.</p> <p><strong>Note:</strong> When this setting is unset, it means that the web socket listens on all available interfaces.</p> <p><strong>Default:</strong> unset</p> <div class=highlight><pre><span></span><code><a id=__codelineno-9-1 name=__codelineno-9-1 href=#__codelineno-9-1></a>websocket_interface = &quot;&lt;interface&gt;&quot;
</code></pre></div> <h3 id=trusted_networks>trusted_networks<a class=headerlink href=#trusted_networks title="Permanent link">&para;</a></h3> <p>List of networks considered safe to access OwnTone without authorisation (see also <code>admin_password</code>).</p> <p><strong>Note:</strong> This applies to these client types: remotes, DAAP clients (e.g., Apple Music, iTunes) and the web interface.</p> <p><strong>Valid values:</strong> <code>any</code>, <code>localhost</code>, or the prefix to one or more IP networks.</p> <p><strong>Default:</strong> <code>{ "localhost", "192.168", "fd" }</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-10-1 name=__codelineno-10-1 href=#__codelineno-10-1></a>trusted_networks = { &lt;&quot;any&quot;|&quot;localhost&quot;|&quot;ip-range-prefix&quot;&gt;, &lt;...&gt; }
</code></pre></div> <h3 id=ipv6>ipv6<a class=headerlink href=#ipv6 title="Permanent link">&para;</a></h3> <p>Flag to indicate whether or not IPv6 must used.</p> <p><strong>Default:</strong> <code>true</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-11-1 name=__codelineno-11-1 href=#__codelineno-11-1></a>ipv6 = &lt;true|false&gt;
</code></pre></div> <h3 id=bind_address>bind_address<a class=headerlink href=#bind_address title="Permanent link">&para;</a></h3> <p>Specific IP address to which the server is bound.</p> <p><strong>Note:</strong> It can be an IPv4 or IPv6 address and by default the server listens on all IP addresses.</p> <p><strong>Default:</strong> unset</p> <div class=highlight><pre><span></span><code><a id=__codelineno-12-1 name=__codelineno-12-1 href=#__codelineno-12-1></a>bind_address = &quot;&lt;ip-address&gt;&quot;
</code></pre></div> <h3 id=cache_path>cache_path<a class=headerlink href=#cache_path title="Permanent link">&para;</a></h3> <p>Full path to the cache database file.</p> <p><strong>Default:</strong> unset</p> <div class=highlight><pre><span></span><code><a id=__codelineno-13-1 name=__codelineno-13-1 href=#__codelineno-13-1></a>cache_path = &quot;&lt;path-to-database-cache-file&gt;&quot;
</code></pre></div> <h3 id=cache_daap_threshold>cache_daap_threshold<a class=headerlink href=#cache_daap_threshold title="Permanent link">&para;</a></h3> <p>Threshold in milliseconds for DAAP requests.</p> <p><strong>Note:</strong> Set to <code>0</code> to disable caching.</p> <p><strong>Default:</strong> <code>1000</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-14-1 name=__codelineno-14-1 href=#__codelineno-14-1></a>cache_daap_threshold = &lt;threshold&gt;
</code></pre></div> <h3 id=speaker_autoselect>speaker_autoselect<a class=headerlink href=#speaker_autoselect title="Permanent link">&para;</a></h3> <p>Flag to automatically select the speaker when starting the playback if none of the previously selected speakers / outputs are available.</p> <p><strong>Default:</strong> <code>false</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-15-1 name=__codelineno-15-1 href=#__codelineno-15-1></a>speaker_autoselect = &lt;true|false&gt;
</code></pre></div> <h3 id=high_resolution_clock>high_resolution_clock<a class=headerlink href=#high_resolution_clock title="Permanent link">&para;</a></h3> <p>Flag to indicate whether or not the high-resolution clock must be set.</p> <p><strong>Note:</strong> Most modern operating systems have a high-resolution clock, but if OwnTone is running on an unusual platform and drop-outs are experienced, this setting set to <code>true</code>.</p> <p><strong>Default:</strong> <code>false</code> on FreeBSD-based operating systems, <code>true</code> otherwise</p> <div class=highlight><pre><span></span><code><a id=__codelineno-16-1 name=__codelineno-16-1 href=#__codelineno-16-1></a>high_resolution_clock = &lt;true|false&gt;
</code></pre></div> <h2 id=library-settings>Library Settings<a class=headerlink href=#library-settings title="Permanent link">&para;</a></h2> <div class=highlight><pre><span></span><code><a id=__codelineno-17-1 name=__codelineno-17-1 href=#__codelineno-17-1></a>library {
<a id=__codelineno-17-2 name=__codelineno-17-2 href=#__codelineno-17-2></a>
<a id=__codelineno-17-3 name=__codelineno-17-3 href=#__codelineno-17-3></a>}
</code></pre></div> <p>The <code>library</code> section accepts the settings below.</p> <h3 id=name>name<a class=headerlink href=#name title="Permanent link">&para;</a></h3> <p>Name of the library as displayed by the clients.</p> <p><strong>Notes:</strong></p> <ul> <li>If you change the name after pairing with Remote you may have to redo the pairing.</li> <li>The place holder <code>%h</code> can be used to display the hostname.</li> </ul> <p><strong>Default:</strong> <code>"My Music on %h"</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-18-1 name=__codelineno-18-1 href=#__codelineno-18-1></a>name = &quot;&lt;library-name&gt;&quot;
</code></pre></div> <h3 id=port>port<a class=headerlink href=#port title="Permanent link">&para;</a></h3> <p>TCP port to listen on.</p> <p><strong>Default:</strong> <code>3689</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-19-1 name=__codelineno-19-1 href=#__codelineno-19-1></a>port = 3689
</code></pre></div> <h3 id=password>password<a class=headerlink href=#password title="Permanent link">&para;</a></h3> <p>Password for the library.</p> <p><strong>Default:</strong> unset</p> <div class=highlight><pre><span></span><code><a id=__codelineno-20-1 name=__codelineno-20-1 href=#__codelineno-20-1></a>password = &quot;&lt;password&gt;&quot;
</code></pre></div> <h3 id=directories>directories<a class=headerlink href=#directories title="Permanent link">&para;</a></h3> <p>Path to the directories containing the media to index.</p> <p><strong>Default:</strong> unset</p> <div class=highlight><pre><span></span><code><a id=__codelineno-21-1 name=__codelineno-21-1 href=#__codelineno-21-1></a>directories = { &quot;&lt;path-to-media&gt;&quot;, &quot;&lt;...&gt;&quot; }
</code></pre></div> <h3 id=follow_symlinks>follow_symlinks<a class=headerlink href=#follow_symlinks title="Permanent link">&para;</a></h3> <p>Flag to indicate whether or not symbolic links must be followed.</p> <p><strong>Default:</strong> <code>true</code>.</p> <div class=highlight><pre><span></span><code><a id=__codelineno-22-1 name=__codelineno-22-1 href=#__codelineno-22-1></a>follow_symlinks = &lt;true|false&gt;
</code></pre></div> <h3 id=podcasts>podcasts<a class=headerlink href=#podcasts title="Permanent link">&para;</a></h3> <p>List of directories containing podcasts.</p> <p><strong>Note:</strong> For each directory that is indexed, the path is matched against these names. If there is a match, all items in the directory are marked as podcasts. If you index <code>/srv/music</code>, and your podcasts are in <code>/srv/music/Podcasts</code>, then you can set this to <code>{ "/Podcasts" }</code>. Changing this setting only takes effect after a rescan.</p> <p><strong>Default:</strong> unset</p> <div class=highlight><pre><span></span><code><a id=__codelineno-23-1 name=__codelineno-23-1 href=#__codelineno-23-1></a>podcasts = { &quot;&lt;podcast-directory&gt;&quot;, &quot;&lt;...&gt;&quot; }
</code></pre></div> <h3 id=audiobooks>audiobooks<a class=headerlink href=#audiobooks title="Permanent link">&para;</a></h3> <p>List of directories containing audiobooks.</p> <p><strong>Note:</strong> For each directory that is indexed, the path is matched against these names. If there is a match, all items in the directory are marked as audiobooks. If you index <code>/srv/music</code>, and your podcasts are in <code>/srv/music/Audiobooks</code>, then you can set this to <code>{ "/Audiobooks" }</code>.Changing this setting only takes effect after a rescan.</p> <p><strong>Default:</strong> unset</p> <div class=highlight><pre><span></span><code><a id=__codelineno-24-1 name=__codelineno-24-1 href=#__codelineno-24-1></a>audiobooks = { &quot;/Audiobooks&quot; }
</code></pre></div> <h3 id=compilations>compilations<a class=headerlink href=#compilations title="Permanent link">&para;</a></h3> <p>List of directories containing compilations: e.g., greatest hits, best of, soundtracks.</p> <p><strong>Note:</strong> For each directory that is indexed, the path is matched against these names. If there is a match, all items in the directory are marked as compilations.Changing this setting only takes effect after a rescan.</p> <p><strong>Default:</strong> unset</p> <div class=highlight><pre><span></span><code><a id=__codelineno-25-1 name=__codelineno-25-1 href=#__codelineno-25-1></a>compilations = { &quot;/Compilations&quot; }
</code></pre></div> <h3 id=compilation_artist>compilation_artist<a class=headerlink href=#compilation_artist title="Permanent link">&para;</a></h3> <p>Artist name of compilation albums.</p> <p><strong>Note:</strong> Compilations usually have multiple artists, and sometimes may have no album artist. If you don't want every artist to be listed, you can set a single name which will be used for all compilation tracks without an album artist, and for all tracks in the compilation directories. Changing this setting only takes effect after a rescan.</p> <p><strong>Default:</strong> unset</p> <div class=highlight><pre><span></span><code><a id=__codelineno-26-1 name=__codelineno-26-1 href=#__codelineno-26-1></a>compilation_artist = &quot;&lt;various-artists&gt;&quot;
</code></pre></div> <h3 id=hide_singles>hide_singles<a class=headerlink href=#hide_singles title="Permanent link">&para;</a></h3> <p>Flag to indicate whether or not single albums must be hidden.</p> <p><strong>Note:</strong> If your album and artist lists are cluttered, you can choose to hide albums and artists with only one track. The tracks will still be visible in other lists, e.g., tracks and playlists. This setting currently only works with some remotes.</p> <p><strong>Default:</strong> <code>false</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-27-1 name=__codelineno-27-1 href=#__codelineno-27-1></a>hide_singles = &lt;true|false&gt;
</code></pre></div> <h3 id=radio_playlists>radio_playlists<a class=headerlink href=#radio_playlists title="Permanent link">&para;</a></h3> <p>Flag to show internet streams in normal playlists.</p> <p><strong>Note:</strong> By default the internet streams are shown in the "Radio" library, like iTunes does. However, some clients (like TunesRemote+) won't show the "Radio" library.</p> <p><strong>Default:</strong> <code>false</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-28-1 name=__codelineno-28-1 href=#__codelineno-28-1></a>radio_playlists = &lt;true|false&gt;
</code></pre></div> <h3 id=name_library>name_library<a class=headerlink href=#name_library title="Permanent link">&para;</a></h3> <p>Name of the default playlist <em>Library</em>.</p> <p><strong>Note:</strong> This is a default playlist, which can be renamed with this setting.</p> <p><strong>Default:</strong> <code>"Library"</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-29-1 name=__codelineno-29-1 href=#__codelineno-29-1></a>name_library = &quot;&lt;library-playlist-name&gt;&quot;
</code></pre></div> <h3 id=name_music>name_music<a class=headerlink href=#name_music title="Permanent link">&para;</a></h3> <p>Name of the default playlist <em>Music</em>.</p> <p><strong>Note:</strong> This is a default playlist, which can be renamed with this setting.</p> <p><strong>Default:</strong> <code>"Music"</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-30-1 name=__codelineno-30-1 href=#__codelineno-30-1></a>name_music = &quot;&lt;music-playlist-name&gt;&quot;
</code></pre></div> <h3 id=name_movies>name_movies<a class=headerlink href=#name_movies title="Permanent link">&para;</a></h3> <p>Name of the default playlist <em>Movies</em>.</p> <p><strong>Note:</strong> This is a default playlist, which can be renamed with this setting.</p> <p><strong>Default:</strong> <code>"Movies"</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-31-1 name=__codelineno-31-1 href=#__codelineno-31-1></a>name_movies = &quot;&lt;movies-playlist-name&gt;&quot;
</code></pre></div> <h3 id=name_tvshows>name_tvshows<a class=headerlink href=#name_tvshows title="Permanent link">&para;</a></h3> <p>Name of the default playlist <em>TV Shows</em>.</p> <p><strong>Note:</strong> This is a default playlist, which can be renamed with this setting.</p> <p><strong>Default:</strong> <code>"TV Shows"</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-32-1 name=__codelineno-32-1 href=#__codelineno-32-1></a>name_tvshows = &quot;&lt;tv-shows-playlist-name&gt;&quot;
</code></pre></div> <h3 id=name_podcasts>name_podcasts<a class=headerlink href=#name_podcasts title="Permanent link">&para;</a></h3> <p>Name of the default playlist <em>Podcasts</em>.</p> <p><strong>Note:</strong> This is a default playlist, which can be renamed with this setting.</p> <p><strong>Default:</strong> <code>"Podcasts"</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-33-1 name=__codelineno-33-1 href=#__codelineno-33-1></a>name_podcasts = &quot;&lt;podcasts-playlist-name&gt;&quot;
</code></pre></div> <h3 id=name_audiobooks>name_audiobooks<a class=headerlink href=#name_audiobooks title="Permanent link">&para;</a></h3> <p>Name of the default playlist <em>Audiobooks</em>.</p> <p><strong>Note:</strong> This is a default playlist, which can be renamed with this setting.</p> <p><strong>Default:</strong> <code>"Audiobooks"</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-34-1 name=__codelineno-34-1 href=#__codelineno-34-1></a>name_audiobooks = &quot;&lt;audiobooks-playlist-name&gt;&quot;
</code></pre></div> <h3 id=name_radio>name_radio<a class=headerlink href=#name_radio title="Permanent link">&para;</a></h3> <p>Name of the default playlist <em>Radio</em>.</p> <p><strong>Note:</strong> This is a default playlist, which can be renamed with this setting.</p> <p><strong>Default:</strong> <code>"Radio"</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-35-1 name=__codelineno-35-1 href=#__codelineno-35-1></a>name_radio = &quot;&lt;radio-playlist-name&gt;&quot;
</code></pre></div> <h3 id=name_unknown_title>name_unknown_title<a class=headerlink href=#name_unknown_title title="Permanent link">&para;</a></h3> <p>Name of tracks having an undefined title.</p> <p><strong>Default:</strong> <code>"Unknown title"</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-36-1 name=__codelineno-36-1 href=#__codelineno-36-1></a>name_unknown_title = &quot;&lt;unknown-title-name&gt;&quot;
</code></pre></div> <h3 id=name_unknown_artist>name_unknown_artist<a class=headerlink href=#name_unknown_artist title="Permanent link">&para;</a></h3> <p>Name of artist having an undefined name.</p> <p><strong>Default:</strong> <code>"Unknown artist"</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-37-1 name=__codelineno-37-1 href=#__codelineno-37-1></a>name_unknown_artist = &quot;&lt;unknown-artist-name&gt;&quot;
</code></pre></div> <h3 id=name_unknown_album>name_unknown_album<a class=headerlink href=#name_unknown_album title="Permanent link">&para;</a></h3> <p>Name of album having an undefined title.</p> <p><strong>Default:</strong> <code>"Unknown album"</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-38-1 name=__codelineno-38-1 href=#__codelineno-38-1></a>name_unknown_album = &quot;&lt;unknown-album-name&gt;&quot;
</code></pre></div> <h3 id=name_unknown_genre>name_unknown_genre<a class=headerlink href=#name_unknown_genre title="Permanent link">&para;</a></h3> <p>Name of genre having an undefined name.</p> <p><strong>Default:</strong> <code>"Unknown genre"</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-39-1 name=__codelineno-39-1 href=#__codelineno-39-1></a>name_unknown_genre = &quot;&lt;unknown-genre-name&gt;&quot;
</code></pre></div> <h3 id=name_unknown_composer>name_unknown_composer<a class=headerlink href=#name_unknown_composer title="Permanent link">&para;</a></h3> <p>Name of composer having an undefined name.</p> <p><strong>Default:</strong> <code>"Unknown composer"</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-40-1 name=__codelineno-40-1 href=#__codelineno-40-1></a>name_unknown_composer = &quot;&lt;unknown-composer-name&gt;&quot;
</code></pre></div> <h3 id=artwork_basenames>artwork_basenames<a class=headerlink href=#artwork_basenames title="Permanent link">&para;</a></h3> <p>List of base names for artwork files (file names without extension).</p> <p><strong>Note:</strong></p> <ul> <li>OwnTone searches for JPEG and PNG files with these base names.</li> <li>More information regarding artwork can be found <a href=../artwork/ >here</a>.</li> </ul> <p><strong>Default:</strong> <code>{ "artwork", "cover", "Folder" }</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-41-1 name=__codelineno-41-1 href=#__codelineno-41-1></a>artwork_basenames = { &quot;&lt;file-name&gt;&quot;, &quot;&lt;...&gt;&quot; }
</code></pre></div> <h3 id=artwork_individual>artwork_individual<a class=headerlink href=#artwork_individual title="Permanent link">&para;</a></h3> <p>Flag to indicate whether or not the search for artwork corresponding to each individual media file must be done instead of only looking for the album artwork.</p> <p><strong>Notes:</strong></p> <ul> <li>Disable this setting to reduce cache size.</li> <li>More information regarding artwork can be found <a href=../artwork/ >here</a>.</li> </ul> <p><strong>Default:</strong> <code>false</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-42-1 name=__codelineno-42-1 href=#__codelineno-42-1></a>artwork_individual = &lt;true|false&gt;
</code></pre></div> <h3 id=artwork_online_sources>artwork_online_sources<a class=headerlink href=#artwork_online_sources title="Permanent link">&para;</a></h3> <p>List of online resources for artwork.</p> <p><strong>Notes:</strong></p> <ul> <li>More information regarding artwork can be found <a href=../artwork/ >here</a>.</li> </ul> <p><strong>Default:</strong> unset</p> <div class=highlight><pre><span></span><code><a id=__codelineno-43-1 name=__codelineno-43-1 href=#__codelineno-43-1></a>artwork_online_sources = { &quot;&lt;link-to-source&gt;&quot;, &quot;&lt;...&gt;&quot;}
</code></pre></div> <h3 id=filetypes_ignore>filetypes_ignore<a class=headerlink href=#filetypes_ignore title="Permanent link">&para;</a></h3> <p>List of file types ignored by the scanner.</p> <p><strong>Note:</strong> Non-audio files will never be added to the database, but here you can prevent the scanner from even probing them. This might reduce scan time.</p> <p><strong>Default:</strong> <code>{ ".db", ".ini", ".db-journal", ".pdf", ".metadata" }</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-44-1 name=__codelineno-44-1 href=#__codelineno-44-1></a>filetypes_ignore = { &quot;&lt;extension&gt;&quot;, &quot;&lt;...&gt;&quot; }
</code></pre></div> <h3 id=filepath_ignore>filepath_ignore<a class=headerlink href=#filepath_ignore title="Permanent link">&para;</a></h3> <p>List of paths ignored by the scanner.</p> <p><strong>Note:</strong> If you want to exclude files on a more advanced basis you can enter one or more POSIX regular expressions, and any file with a matching path will be ignored.</p> <p><strong>Default:</strong> unset</p> <div class=highlight><pre><span></span><code><a id=__codelineno-45-1 name=__codelineno-45-1 href=#__codelineno-45-1></a>filepath_ignore = { &quot;&lt;path|regular-expression&gt;&quot; }
</code></pre></div> <h3 id=filescan_disable>filescan_disable<a class=headerlink href=#filescan_disable title="Permanent link">&para;</a></h3> <p>Flag to indicate whether or not the startup file scanning must be disabled.</p> <p><strong>Note:</strong> When OwnTone starts it will do an initial file scan of the library and then watch it for changes. If you are sure your library never changes while OwnTone is not running, you can disable the initial file scan and save some system ressources. Disabling this scan may lead to OwnTone's database coming out of sync with the library. If that happens read the instructions in the README on how to trigger a rescan.</p> <p><strong>Default:</strong> <code>false</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-46-1 name=__codelineno-46-1 href=#__codelineno-46-1></a>filescan_disable = &lt;true|false&gt;
</code></pre></div> <h3 id=only_first_genre>only_first_genre<a class=headerlink href=#only_first_genre title="Permanent link">&para;</a></h3> <p>Flag to indicate whether or not the first genre only found in metadata must be displayed.</p> <p><strong>Note:</strong> Some tracks have multiple genres separated by semicolon in the same tag, e.g., 'Pop;Rock'. If you don't want them listed like this, you can enable this setting and only the first genre will be used (i.e. 'Pop').</p> <p><strong>Default:</strong> <code>false</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-47-1 name=__codelineno-47-1 href=#__codelineno-47-1></a>only_first_genre = &lt;true|false&gt;
</code></pre></div> <h3 id=m3u_overrides>m3u_overrides<a class=headerlink href=#m3u_overrides title="Permanent link">&para;</a></h3> <p>Flag to indicate whether or not the metadata provided by radio streams must be overridden by metadata from m3u playlists, e.g., artist and title in EXTINF.</p> <p><strong>Default:</strong> <code>false</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-48-1 name=__codelineno-48-1 href=#__codelineno-48-1></a>m3u_overrides = &lt;true|false&gt;
</code></pre></div> <h3 id=itunes_overrides>itunes_overrides<a class=headerlink href=#itunes_overrides title="Permanent link">&para;</a></h3> <p>Flag to indicate whether or not the library metadata must be overridden by iTunes metadata.</p> <p><strong>Default:</strong> <code>false</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-49-1 name=__codelineno-49-1 href=#__codelineno-49-1></a>itunes_overrides = &lt;true|false&gt;
</code></pre></div> <h3 id=itunes_smartpl>itunes_smartpl<a class=headerlink href=#itunes_smartpl title="Permanent link">&para;</a></h3> <p>Flag to import Should we import the content of iTunes smart playlists.</p> <p><strong>Default:</strong> <code>false</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-50-1 name=__codelineno-50-1 href=#__codelineno-50-1></a>itunes_smartpl = &lt;true|false&gt;
</code></pre></div> <h3 id=no_decode>no_decode<a class=headerlink href=#no_decode title="Permanent link">&para;</a></h3> <p>List of formats that are never decoded.</p> <p><strong>Note:</strong> Decoding options for DAAP and RSP clients. Since iTunes has native support for mpeg, mp4a, mp4v, alac and wav, such files will be sent as they are. Any other formats will be decoded to raw wav. If OwnTone detects a non-iTunes DAAP client, it is assumed to only support mpeg and wav, other formats will be decoded. Here you can change when to decode. Note that these settings only affect serving media to DAAP and RSP clients, they have no effect on direct AirPlay, Chromecast and local audio playback</p> <p><strong>Valid values:</strong> <code>mp4a</code>, <code>mp4v</code>, <code>mpeg</code>, <code>alac</code>, <code>flac</code>, <code>mpc</code>, <code>ogg</code>, <code>wma</code>, <code>wmal</code>, <code>wmav</code>, <code>aif</code>, <code>wav</code>.</p> <p><strong>Default:</strong> unset</p> <div class=highlight><pre><span></span><code><a id=__codelineno-51-1 name=__codelineno-51-1 href=#__codelineno-51-1></a>no_decode = { &quot;&lt;format&gt;&quot;, &quot;&lt;...&gt;&quot; }
</code></pre></div> <h3 id=force_decode>force_decode<a class=headerlink href=#force_decode title="Permanent link">&para;</a></h3> <p>List of formats that are always decoded.</p> <p><strong>Note:</strong> See note for <code>no_decode</code> setting.</p> <p><strong>Valid values:</strong> <code>mp4a</code>, <code>mp4v</code>, <code>mpeg</code>, <code>alac</code>, <code>flac</code>, <code>mpc</code>, <code>ogg</code>, <code>wma</code>, <code>wmal</code>, <code>wmav</code>, <code>aif</code>, <code>wav</code>.</p> <p><strong>Default:</strong> unset</p> <div class=highlight><pre><span></span><code><a id=__codelineno-52-1 name=__codelineno-52-1 href=#__codelineno-52-1></a>force_decode = { &quot;&lt;format&gt;&quot;, &quot;&lt;...&gt;&quot; }
</code></pre></div> <h3 id=prefer_format>prefer_format<a class=headerlink href=#prefer_format title="Permanent link">&para;</a></h3> <p>Preferred format to be used.</p> <p><strong>Default:</strong> unset</p> <div class=highlight><pre><span></span><code><a id=__codelineno-53-1 name=__codelineno-53-1 href=#__codelineno-53-1></a>prefer_format = &quot;&lt;format&gt;&quot;
</code></pre></div> <h3 id=decode_audio_filters>decode_audio_filters<a class=headerlink href=#decode_audio_filters title="Permanent link">&para;</a></h3> <p>List of audio filters used at decoding time.</p> <p><strong>Note:</strong> These filters are ffmpeg filters: i.e. similar to those specified on the command line <code>ffmpeg -af &lt;filter&gt;</code>. Examples: <code>"volume=replaygain=track"</code> to use replay gain of the track metadata, or <code>loudnorm=I=-16:LRA=11:TP=-1.5</code> to normalise volume.</p> <p><strong>Default:</strong> unset</p> <div class=highlight><pre><span></span><code><a id=__codelineno-54-1 name=__codelineno-54-1 href=#__codelineno-54-1></a>decode_audio_filters = { &quot;&lt;filter&gt;&quot; }
</code></pre></div> <h3 id=decode_video_filters>decode_video_filters<a class=headerlink href=#decode_video_filters title="Permanent link">&para;</a></h3> <p>List of video filters used at decoding time.</p> <p><strong>Note:</strong> These filters are ffmpeg filters: i.e. similar to those specified on the command line <code>ffmpeg -vf &lt;filter&gt;</code>.</p> <p><strong>Default:</strong> unset</p> <div class=highlight><pre><span></span><code><a id=__codelineno-55-1 name=__codelineno-55-1 href=#__codelineno-55-1></a>decode_video_filters = { &quot;&lt;filter&gt;&quot; }
</code></pre></div> <h3 id=pipe_autostart>pipe_autostart<a class=headerlink href=#pipe_autostart title="Permanent link">&para;</a></h3> <p>Flag to indicate whether or not named pipes must start automatically when data is provided.</p> <p><strong>Note:</strong> To exclude specific pipes from watching, consider using the <code>filepath_ignore</code> setting.</p> <div class=highlight><pre><span></span><code><a id=__codelineno-56-1 name=__codelineno-56-1 href=#__codelineno-56-1></a>pipe_autostart = true
</code></pre></div> <h3 id=pipe_sample_rate>pipe_sample_rate<a class=headerlink href=#pipe_sample_rate title="Permanent link">&para;</a></h3> <p>Sampling rate of the pipe.</p> <p><strong>Default:</strong> <code>44100</code>.</p> <div class=highlight><pre><span></span><code><a id=__codelineno-57-1 name=__codelineno-57-1 href=#__codelineno-57-1></a>pipe_sample_rate = &lt;integer&gt;
</code></pre></div> <h3 id=pipe_bits_per_sample>pipe_bits_per_sample<a class=headerlink href=#pipe_bits_per_sample title="Permanent link">&para;</a></h3> <p>Bits per sample of the pipe.</p> <p><strong>Default:</strong> <code>16</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-58-1 name=__codelineno-58-1 href=#__codelineno-58-1></a>pipe_bits_per_sample = &lt;integer&gt;
</code></pre></div> <h3 id=rating_updates>rating_updates<a class=headerlink href=#rating_updates title="Permanent link">&para;</a></h3> <p>Flag to indicate whether or not ratings are automatically updated.</p> <p><strong>Note:</strong> When enabled, the rating is automatically updated after a song has either been played or skipped (only skipping to the next song is taken into account). The calculation is taken from the beets plugin "mpdstats" (see <a href=https://beets.readthedocs.io/en/latest/plugins/mpdstats.html>here</a>). It consists of calculating a stable rating based only on the play and skip count and a rolling rating based on the current rating and the action (played or skipped). Both results are combined with a mix factor of 0.75. <strong>Formula:</strong> new rating = 0.75 × stable rating + 0.25 × rolling rating</p> <p><strong>Default:</strong> <code>false</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-59-1 name=__codelineno-59-1 href=#__codelineno-59-1></a>rating_updates = &lt;true|false&gt;
</code></pre></div> <h3 id=read_rating>read_rating<a class=headerlink href=#read_rating title="Permanent link">&para;</a></h3> <p>Flag to indicate whether or not the rating is read from media file metadata.</p> <p><strong>Default:</strong> <code>false</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-60-1 name=__codelineno-60-1 href=#__codelineno-60-1></a>read_rating = &lt;true|false&gt;
</code></pre></div> <h3 id=write_rating>write_rating<a class=headerlink href=#write_rating title="Permanent link">&para;</a></h3> <p>Flag to indicate whether or not the rating is written back to the file metadata.</p> <p><strong>Note:</strong> By default, ratings are only saved in the database. To avoid excessive writing to the library, automatic rating updates are not written, even with the write_rating setting enabled.</p> <p><strong>Default:</strong> <code>false</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-61-1 name=__codelineno-61-1 href=#__codelineno-61-1></a>write_rating = &lt;true|false&gt;
</code></pre></div> <h3 id=max_rating>max_rating<a class=headerlink href=#max_rating title="Permanent link">&para;</a></h3> <p>Scale used when reading and writing ratings to media files.</p> <p><strong>Default:</strong> <code>100</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-62-1 name=__codelineno-62-1 href=#__codelineno-62-1></a>max_rating = &lt;integer&gt;
</code></pre></div> <h3 id=allow_modifying_stored_playlists>allow_modifying_stored_playlists<a class=headerlink href=#allow_modifying_stored_playlists title="Permanent link">&para;</a></h3> <p>Flag to indicate whether or not M3U playlists can be created, modified, or deleted in the playlist directories.</p> <p><strong>Note:</strong> This setting is only supported through the web interface and some MPD clients.</p> <p><strong>Default:</strong> <code>false</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-63-1 name=__codelineno-63-1 href=#__codelineno-63-1></a>allow_modifying_stored_playlists = false
</code></pre></div> <h3 id=default_playlist_directory>default_playlist_directory<a class=headerlink href=#default_playlist_directory title="Permanent link">&para;</a></h3> <p>Name of the directory in one of the library directories that will be used as the default playlist directory.</p> <p><strong>Note:</strong> OwnTone creates new playlists in this directory. This setting requires <code>allow_modify_stored_playlists</code> set to true.</p> <p><strong>Default:</strong> unset</p> <div class=highlight><pre><span></span><code><a id=__codelineno-64-1 name=__codelineno-64-1 href=#__codelineno-64-1></a>default_playlist_directory = &quot;&lt;path-to-playlist-directory&gt;&quot;
</code></pre></div> <h3 id=clear_queue_on_stop_disable>clear_queue_on_stop_disable<a class=headerlink href=#clear_queue_on_stop_disable title="Permanent link">&para;</a></h3> <p>Flag to indicate whether or not the queue is cleared when the playback is stopped.</p> <p><strong>Note:</strong> By default OwnTone will, like iTunes, clear the play queue if playback stops. Setting clear_queue_on_stop_disable to true will keep the playlist like MPD does. Moreover, some dacp clients do not show the play queue if playback is stopped.</p> <p><strong>Default:</strong> <code>false</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-65-1 name=__codelineno-65-1 href=#__codelineno-65-1></a>clear_queue_on_stop_disable = &lt;true|false&gt;
</code></pre></div> <h2 id=local-audio-settings>Local Audio Settings<a class=headerlink href=#local-audio-settings title="Permanent link">&para;</a></h2> <div class=highlight><pre><span></span><code><a id=__codelineno-66-1 name=__codelineno-66-1 href=#__codelineno-66-1></a>audio {
<a id=__codelineno-66-2 name=__codelineno-66-2 href=#__codelineno-66-2></a>
<a id=__codelineno-66-3 name=__codelineno-66-3 href=#__codelineno-66-3></a>}
</code></pre></div> <p>The <code>audio</code> section is meant to configure the local audio output. It accepts the settings below.</p> <h3 id=nickname>nickname<a class=headerlink href=#nickname title="Permanent link">&para;</a></h3> <p>Name appearing in the speaker list.</p> <p><strong>Default:</strong> <code>"Computer"</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-67-1 name=__codelineno-67-1 href=#__codelineno-67-1></a>nickname = &quot;Computer&quot;
</code></pre></div> <h3 id=type>type<a class=headerlink href=#type title="Permanent link">&para;</a></h3> <p>Type of the output.</p> <p><strong>Valid values:</strong> <code>alsa</code>, <code>pulseaudio</code>, <code>dummy</code>, <code>disabled</code></p> <p><strong>Default:</strong> unset</p> <div class=highlight><pre><span></span><code><a id=__codelineno-68-1 name=__codelineno-68-1 href=#__codelineno-68-1></a>type = &quot;&lt;alsa|pulseaudio|dummy|disabled&gt;&quot;
</code></pre></div> <ul> <li><code>server</code> - For pulseaudio output, an optional server hostname or IP can be specified (e.g. "localhost"). If not set, connection is made via local socket.</li> </ul> <p><strong>Default:</strong> unset</p> <div class=highlight><pre><span></span><code><a id=__codelineno-69-1 name=__codelineno-69-1 href=#__codelineno-69-1></a>server = &quot;&lt;hostname|ip-address&gt;&quot;
</code></pre></div> <ul> <li><code>card</code> - Name of the local audio PCM device.</li> </ul> <p><strong>Note:</strong> ALSA only.</p> <p><strong>Default:</strong> <code>"default"</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-70-1 name=__codelineno-70-1 href=#__codelineno-70-1></a>card = &quot;&lt;device-name&gt;&quot;
</code></pre></div> <h3 id=mixer>mixer<a class=headerlink href=#mixer title="Permanent link">&para;</a></h3> <p>Mixer channel used for volume control.</p> <p><strong>Note:</strong> Usable with ALSA only. If not set, PCM will be used if available, otherwise Master.</p> <p><strong>Default:</strong> unset</p> <div class=highlight><pre><span></span><code><a id=__codelineno-71-1 name=__codelineno-71-1 href=#__codelineno-71-1></a>mixer = &quot;&lt;mixer&gt;&quot;
</code></pre></div> <h3 id=mixer_device>mixer_device<a class=headerlink href=#mixer_device title="Permanent link">&para;</a></h3> <p>Name of the mixer device to use for volume control.</p> <p><strong>Note:</strong> Usable with ALSA only.</p> <p><strong>Default:</strong> unset</p> <div class=highlight><pre><span></span><code><a id=__codelineno-72-1 name=__codelineno-72-1 href=#__codelineno-72-1></a>mixer_device = &quot;&lt;mixer-device&gt;&quot;
</code></pre></div> <h3 id=sync_disable>sync_disable<a class=headerlink href=#sync_disable title="Permanent link">&para;</a></h3> <p>Flag to indicate whether or not audio resampling has to be enabled to keep local audio in sync with, for example, AirPlay.</p> <p><strong>Note:</strong> This feature relies on accurate ALSA measurements of delay, and some devices don't provide that. If that is the case you are better off disabling the feature.</p> <p><strong>Default:</strong> <code>false</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-73-1 name=__codelineno-73-1 href=#__codelineno-73-1></a>sync_disable = &lt;true|false&gt;
</code></pre></div> <h3 id=offset_ms>offset_ms<a class=headerlink href=#offset_ms title="Permanent link">&para;</a></h3> <p>Start delay in milliseconds relatively to other speakers, for example AirPlay.</p> <p><strong>Note:</strong> Negative values correspond to moving local audio ahead, positive correspond to delaying it.</p> <p><strong>Valid values:</strong> -1000 to 1000</p> <p><strong>Default:</strong> <code>0</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-74-1 name=__codelineno-74-1 href=#__codelineno-74-1></a>offset_ms = 0
</code></pre></div> <h3 id=adjust_period_seconds>adjust_period_seconds<a class=headerlink href=#adjust_period_seconds title="Permanent link">&para;</a></h3> <p>Period in seconds used to collect measurements for drift and latency adjustments.</p> <p><strong>Note:</strong> To calculate if resampling is required and if yes what value, local audio delay is measured each second. After a period the collected measurements are used to estimate drift and latency, which determines if corrections are required.</p> <p><strong>Default:</strong> <code>100</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-75-1 name=__codelineno-75-1 href=#__codelineno-75-1></a>adjust_period_seconds = &lt;integer&gt;
</code></pre></div> <h2 id=per-alsa-device-settings>Per ALSA Device Settings<a class=headerlink href=#per-alsa-device-settings title="Permanent link">&para;</a></h2> <div class=highlight><pre><span></span><code><a id=__codelineno-76-1 name=__codelineno-76-1 href=#__codelineno-76-1></a>alsa &quot;&lt;card-name&gt;&quot; {
<a id=__codelineno-76-2 name=__codelineno-76-2 href=#__codelineno-76-2></a> ….
<a id=__codelineno-76-3 name=__codelineno-76-3 href=#__codelineno-76-3></a>}
</code></pre></div> <p>Each <code>alsa</code> section is meant to configure a named ALSA output: one named section per device. It accepts the settings below.</p> <p><strong>Note:</strong> Make sure to set the <code>"&lt;card-name&gt;"</code> correctly. Moreover, these settings will override the ALSA settings in the <code>audio</code> section above.</p> <h3 id=nickname_1>nickname<a class=headerlink href=#nickname_1 title="Permanent link">&para;</a></h3> <p>Name appearing in the speaker list.</p> <p><strong>Default:</strong> <code>"&lt;card-name&gt;"</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-77-1 name=__codelineno-77-1 href=#__codelineno-77-1></a>nickname = &quot;&lt;speaker-name&gt;&quot;
</code></pre></div> <h3 id=mixer_1>mixer<a class=headerlink href=#mixer_1 title="Permanent link">&para;</a></h3> <p>Mixer channel used for volume control.</p> <p><strong>Note:</strong> If not set, PCM will be used if available, otherwise Master.</p> <div class=highlight><pre><span></span><code><a id=__codelineno-78-1 name=__codelineno-78-1 href=#__codelineno-78-1></a>mixer = &quot;&lt;mixer&gt;&quot;
</code></pre></div> <h3 id=mixer_device_1>mixer_device<a class=headerlink href=#mixer_device_1 title="Permanent link">&para;</a></h3> <p>Name of the mixer device to use for volume control.</p> <p><strong>Default:</strong> <code>"&lt;card-name&gt;"</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-79-1 name=__codelineno-79-1 href=#__codelineno-79-1></a>mixer_device = &quot;&lt;mixer-device&gt;&quot;
</code></pre></div> <h3 id=offset_ms_1>offset_ms<a class=headerlink href=#offset_ms_1 title="Permanent link">&para;</a></h3> <p>Start delay in milliseconds relatively to other speakers, for example AirPlay.</p> <p><strong>Note:</strong> Negative values correspond to moving local audio ahead, positive correspond to delaying it.</p> <p><strong>Valid values:</strong> -1000 to 1000</p> <p><strong>Default:</strong> <code>0</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-80-1 name=__codelineno-80-1 href=#__codelineno-80-1></a>offset_ms = 0
</code></pre></div> <h2 id=fifo-settings>FIFO Settings<a class=headerlink href=#fifo-settings title="Permanent link">&para;</a></h2> <div class=highlight><pre><span></span><code><a id=__codelineno-81-1 name=__codelineno-81-1 href=#__codelineno-81-1></a>fifo {
<a id=__codelineno-81-2 name=__codelineno-81-2 href=#__codelineno-81-2></a>
<a id=__codelineno-81-3 name=__codelineno-81-3 href=#__codelineno-81-3></a>}
</code></pre></div> <p>The <code>fifo</code> section, is meant to configure the named pipe audio output. It accepts the settings below.</p> <h3 id=nickname_2>nickname<a class=headerlink href=#nickname_2 title="Permanent link">&para;</a></h3> <p>The name appearing in the speaker list.</p> <p><strong>Default:</strong> <code>"fifo"</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-82-1 name=__codelineno-82-1 href=#__codelineno-82-1></a>nickname = &quot;&lt;fifo-name&gt;&quot;
</code></pre></div> <h3 id=path>path<a class=headerlink href=#path title="Permanent link">&para;</a></h3> <p>Path to the named pipe.</p> <p><strong>Default:</strong> unset</p> <div class=highlight><pre><span></span><code><a id=__codelineno-83-1 name=__codelineno-83-1 href=#__codelineno-83-1></a>path = &quot;&lt;path-to-fifo&gt;&quot;
</code></pre></div> <h2 id=shared-airplay-settings>Shared AirPlay Settings<a class=headerlink href=#shared-airplay-settings title="Permanent link">&para;</a></h2> <div class=highlight><pre><span></span><code><a id=__codelineno-84-1 name=__codelineno-84-1 href=#__codelineno-84-1></a>airplay_shared {
<a id=__codelineno-84-2 name=__codelineno-84-2 href=#__codelineno-84-2></a>
<a id=__codelineno-84-3 name=__codelineno-84-3 href=#__codelineno-84-3></a>}
</code></pre></div> <p>The <code>airplay_shared</code> section describes the settings that are shared across all the AirPlay devices.</p> <h3 id=control_port>control_port<a class=headerlink href=#control_port title="Permanent link">&para;</a></h3> <p>Number of the UDP control port used when AirPlay devices make connections back to OwnTone.</p> <p><strong>Note:</strong> Choosing specific ports may be helpful when running OwnTone behind a firewall.</p> <p><strong>Default:</strong> <code>0</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-85-1 name=__codelineno-85-1 href=#__codelineno-85-1></a>control_port = 0
</code></pre></div> <h3 id=timing_port>timing_port<a class=headerlink href=#timing_port title="Permanent link">&para;</a></h3> <p>Number of the UDP timing port used when AirPlay devices make connections back to OwnTone.</p> <p><strong>Note:</strong> Choosing specific ports may be helpful when running OwnTone behind a firewall.</p> <p><strong>Default:</strong> <code>0</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-86-1 name=__codelineno-86-1 href=#__codelineno-86-1></a>timing_port = 0
</code></pre></div> <h3 id=uncompressed_alac>uncompressed_alac<a class=headerlink href=#uncompressed_alac title="Permanent link">&para;</a></h3> <p>Switch AirPlay 1 streams to uncompressed ALAC (as opposed to regular, compressed ALAC). Reduces CPU use at the cost of network bandwidth.</p> <p><strong>Default:</strong> <code>false</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-87-1 name=__codelineno-87-1 href=#__codelineno-87-1></a>uncompressed_alac = &lt;true|false&gt;
</code></pre></div> <h2 id=per-airplay-device-settings>Per AirPlay Device Settings<a class=headerlink href=#per-airplay-device-settings title="Permanent link">&para;</a></h2> <div class=highlight><pre><span></span><code><a id=__codelineno-88-1 name=__codelineno-88-1 href=#__codelineno-88-1></a>airplay &quot;&lt;airplay-device&gt;&quot; {
<a id=__codelineno-88-2 name=__codelineno-88-2 href=#__codelineno-88-2></a>
<a id=__codelineno-88-3 name=__codelineno-88-3 href=#__codelineno-88-3></a>}
</code></pre></div> <p>Each <code>airplay</code> section is meant to configure a named AirPlay output: one named section per device. It accepts the settings below.</p> <p><strong>Note:</strong> The capitalisation of the device name is relevant.</p> <h3 id=max_volume>max_volume<a class=headerlink href=#max_volume title="Permanent link">&para;</a></h3> <p>Maximum value of the volume.</p> <p><strong>Note:</strong> If that's more than your setup can handle set a lower value.</p> <p><strong>Default:</strong> <code>11</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-89-1 name=__codelineno-89-1 href=#__codelineno-89-1></a>max_volume = &lt;integer&gt;
</code></pre></div> <h3 id=exclude>exclude<a class=headerlink href=#exclude title="Permanent link">&para;</a></h3> <p>Flag indicating if the device must be excluded from the speaker list.</p> <p><strong>Default:</strong> <code>false</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-90-1 name=__codelineno-90-1 href=#__codelineno-90-1></a>exclude = &lt;true|false&gt;
</code></pre></div> <h3 id=permanent>permanent<a class=headerlink href=#permanent title="Permanent link">&para;</a></h3> <p>Flag to indicate to keep the device in the speaker list and thus ignore mdns notifications about it no longer being present. The speaker will remain until restart of OwnTone.</p> <p><strong>Default:</strong> <code>false</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-91-1 name=__codelineno-91-1 href=#__codelineno-91-1></a>permanent = &lt;true|false&gt;
</code></pre></div> <h3 id=reconnect>reconnect<a class=headerlink href=#reconnect title="Permanent link">&para;</a></h3> <p>Flag to indicate whether or not OwnTone must explicitly reconnect with the device.</p> <p><strong>Note:</strong> Some devices spuriously disconnect during playback, and based on the device type OwnTone may attempt to reconnect.</p> <p><strong>Default:</strong> <code>false</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-92-1 name=__codelineno-92-1 href=#__codelineno-92-1></a>reconnect = &lt;true|false&gt;
</code></pre></div> <h3 id=password_1>password<a class=headerlink href=#password_1 title="Permanent link">&para;</a></h3> <ul> <li>``- Password of the device.</li> </ul> <p><strong>Default:</strong> unset</p> <div class=highlight><pre><span></span><code><a id=__codelineno-93-1 name=__codelineno-93-1 href=#__codelineno-93-1></a>password = &quot;&lt;password&gt;&quot;
</code></pre></div> <h3 id=raop_disable>raop_disable<a class=headerlink href=#raop_disable title="Permanent link">&para;</a></h3> <p>Flag to indicate whether or not AirPlay 1 (RAOP) must be disabled.</p> <p><strong>Default:</strong> <code>false</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-94-1 name=__codelineno-94-1 href=#__codelineno-94-1></a>raop_disable = &lt;true|false&gt;
</code></pre></div> <h3 id=nickname_3>nickname<a class=headerlink href=#nickname_3 title="Permanent link">&para;</a></h3> <p>Name appearing in the speaker list.</p> <p><strong>Note:</strong> The defined name overrides the name of the device.</p> <p><strong>Default:</strong> unset</p> <div class=highlight><pre><span></span><code><a id=__codelineno-95-1 name=__codelineno-95-1 href=#__codelineno-95-1></a>nickname = &quot;&lt;speaker-name&gt;&quot;
</code></pre></div> <h2 id=per-chromecast-device-settings>Per Chromecast Device Settings<a class=headerlink href=#per-chromecast-device-settings title="Permanent link">&para;</a></h2> <div class=highlight><pre><span></span><code><a id=__codelineno-96-1 name=__codelineno-96-1 href=#__codelineno-96-1></a>chromecast &quot;&lt;chromecast-device&gt;&quot; {
<a id=__codelineno-96-2 name=__codelineno-96-2 href=#__codelineno-96-2></a>
<a id=__codelineno-96-3 name=__codelineno-96-3 href=#__codelineno-96-3></a>}
</code></pre></div> <p>Each <code>chromecast</code> section is meant to configure a named Chromecast output: one named section per device. It accepts the settings below.</p> <p><strong>Note:</strong> The capitalisation of the device name is relevant.</p> <h3 id=max_volume_1>max_volume<a class=headerlink href=#max_volume_1 title="Permanent link">&para;</a></h3> <p>Maximum value of the volume.</p> <p><strong>Note:</strong> If that's more than your setup can handle set a lower value.</p> <p><strong>Default:</strong> <code>11</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-97-1 name=__codelineno-97-1 href=#__codelineno-97-1></a>max_volume = &lt;integer&gt;
</code></pre></div> <h3 id=exclude_1>exclude<a class=headerlink href=#exclude_1 title="Permanent link">&para;</a></h3> <p>Flag indicating if the device must be excluded from the speaker list.</p> <p><strong>Default:</strong> <code>false</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-98-1 name=__codelineno-98-1 href=#__codelineno-98-1></a>exclude = &lt;true|false&gt;
</code></pre></div> <h3 id=nickname_4>nickname<a class=headerlink href=#nickname_4 title="Permanent link">&para;</a></h3> <p>Name appearing in the speaker list.</p> <p><strong>Note:</strong> The defined name overrides the name of the device.</p> <p><strong>Default:</strong> unset</p> <div class=highlight><pre><span></span><code><a id=__codelineno-99-1 name=__codelineno-99-1 href=#__codelineno-99-1></a>nickname = &quot;&lt;speaker-name&gt;&quot;
</code></pre></div> <h2 id=spotify-settings>Spotify Settings<a class=headerlink href=#spotify-settings title="Permanent link">&para;</a></h2> <div class=highlight><pre><span></span><code><a id=__codelineno-100-1 name=__codelineno-100-1 href=#__codelineno-100-1></a>spotify {
<a id=__codelineno-100-2 name=__codelineno-100-2 href=#__codelineno-100-2></a>
<a id=__codelineno-100-3 name=__codelineno-100-3 href=#__codelineno-100-3></a>}
</code></pre></div> <p>The <code>spotify</code> section accepts the settings below.</p> <p><strong>Note:</strong> These settings only have effect if OwnTone is built with Spotify support.</p> <h3 id=bitrate>bitrate<a class=headerlink href=#bitrate title="Permanent link">&para;</a></h3> <p>Bit rate of the stream.</p> <p><strong>Valid values:</strong> <code>0</code> (No preference), <code>1</code> (96 kb/s), <code>2</code> (160 kb/s), <code>3</code> (320 kb/s)</p> <p><strong>Default:</strong> <code>0</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-101-1 name=__codelineno-101-1 href=#__codelineno-101-1></a>bitrate = &lt;0|1|2|3&gt;
</code></pre></div> <h3 id=base_playlist_disable>base_playlist_disable<a class=headerlink href=#base_playlist_disable title="Permanent link">&para;</a></h3> <p>Flag to indicate whether or not Spotify playlists are placed into the library playlist folder.</p> <p><strong>Note:</strong> Spotify playlists are by default located in a <em>Spotify</em> playlist folder.</p> <p><strong>Default:</strong> <code>false</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-102-1 name=__codelineno-102-1 href=#__codelineno-102-1></a>base_playlist_disable = &lt;true|false&gt;
</code></pre></div> <h3 id=artist_override>artist_override<a class=headerlink href=#artist_override title="Permanent link">&para;</a></h3> <p>Flag indicating whether or not the compilation artist must be used as the album artist.</p> <p><strong>Note:</strong> Spotify playlists usually have many artists, and if you don't want every artist to be listed when artist browsing in Remote, you can set this flag to true.</p> <p><strong>Default:</strong> <code>false</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-103-1 name=__codelineno-103-1 href=#__codelineno-103-1></a>artist_override = &lt;true|false&gt;
</code></pre></div> <h3 id=album_override>album_override<a class=headerlink href=#album_override title="Permanent link">&para;</a></h3> <p>Flag to indicate to use the playlist name as the album name.</p> <p><strong>Note:</strong> Similar to the different artists in Spotify playlists, the playlist items belong to different albums, and if you do not want every album to be listed when browsing in Remote, you can set the album_override flag to true. Moreover, if an item is in more than one playlist, it will only appear randomly in one album when browsing.</p> <p><strong>Default:</strong> <code>false</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-104-1 name=__codelineno-104-1 href=#__codelineno-104-1></a>album_override = &lt;true|false&gt;
</code></pre></div> <h2 id=rcp-roku-soundbridge-settings>RCP / Roku Soundbridge Settings<a class=headerlink href=#rcp-roku-soundbridge-settings title="Permanent link">&para;</a></h2> <div class=highlight><pre><span></span><code><a id=__codelineno-105-1 name=__codelineno-105-1 href=#__codelineno-105-1></a>rcp &quot;&lt;device-name&gt;&quot; {
<a id=__codelineno-105-2 name=__codelineno-105-2 href=#__codelineno-105-2></a>
<a id=__codelineno-105-3 name=__codelineno-105-3 href=#__codelineno-105-3></a>}
</code></pre></div> <p>Each <code>rcp</code> section is meant to configure a named RCP output: one named section per device. It accepts the settings below.</p> <p><strong>Note:</strong> The capitalisation of the device name is relevant.</p> <h3 id=exclude_2>exclude<a class=headerlink href=#exclude_2 title="Permanent link">&para;</a></h3> <p>Enable this option to exclude the device from the speaker list.</p> <p><strong>Default:</strong> <code>false</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-106-1 name=__codelineno-106-1 href=#__codelineno-106-1></a>exclude = &lt;true|false&gt;
</code></pre></div> <h3 id=clear_on_close>clear_on_close<a class=headerlink href=#clear_on_close title="Permanent link">&para;</a></h3> <p>Flag indicating whether or not the power on the device is maintained.</p> <p><strong>Note:</strong> A Roku / SoundBridge can power up in 2 modes: (default) reconnect to the previously used library (i.e. OwnTone) or in a <em>cleared library</em> mode. The Roku power up behaviour is affected by how OwnTone disconnects from the Roku device. Set to false to maintain the default Roku <em>power on</em> behaviour.</p> <p><strong>Default:</strong> <code>false</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-107-1 name=__codelineno-107-1 href=#__codelineno-107-1></a>clear_on_close = false
</code></pre></div> <h2 id=mpd-settings>MPD Settings<a class=headerlink href=#mpd-settings title="Permanent link">&para;</a></h2> <div class=highlight><pre><span></span><code><a id=__codelineno-108-1 name=__codelineno-108-1 href=#__codelineno-108-1></a>mpd {
<a id=__codelineno-108-2 name=__codelineno-108-2 href=#__codelineno-108-2></a>
<a id=__codelineno-108-3 name=__codelineno-108-3 href=#__codelineno-108-3></a>}
</code></pre></div> <p>The <code>mpd</code> section defines the settings for MPD clients. It accepts the settings below.</p> <p><strong>Note:</strong> These settings only have effect if OwnTone is built with Spotify support.</p> <h3 id=port_1>port<a class=headerlink href=#port_1 title="Permanent link">&para;</a></h3> <p>TCP port to listen for MPD client requests.</p> <p><strong>Note:</strong> Setting the port to <code>0</code> disables the support for MPD.</p> <p><strong>Default:</strong> <code>6600</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-109-1 name=__codelineno-109-1 href=#__codelineno-109-1></a>port = 6600
</code></pre></div> <h3 id=http_port>http_port<a class=headerlink href=#http_port title="Permanent link">&para;</a></h3> <p>HTTP port to listen for artwork requests.</p> <p><strong>Notes:</strong></p> <ul> <li>This setting is only supported by some MPD clients and will need additional configuration in the MPD client to work.</li> <li>Setting the port to <code>0</code> disables the serving of artwork.</li> </ul> <p><strong>Default:</strong> <code>0</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-110-1 name=__codelineno-110-1 href=#__codelineno-110-1></a>http_port = 0
</code></pre></div> <h2 id=sqlite-settings>SQLite Settings<a class=headerlink href=#sqlite-settings title="Permanent link">&para;</a></h2> <div class=highlight><pre><span></span><code><a id=__codelineno-111-1 name=__codelineno-111-1 href=#__codelineno-111-1></a>sqlite {
<a id=__codelineno-111-2 name=__codelineno-111-2 href=#__codelineno-111-2></a>
<a id=__codelineno-111-3 name=__codelineno-111-3 href=#__codelineno-111-3></a>}
</code></pre></div> <p>The <code>sqlite</code> section defines how the SQLite database operates and accepts the settings below.</p> <p><strong>Note:</strong> Make sure to read the SQLite documentation for the corresponding PRAGMA statements as changing them from the defaults may increase the possibility of database corruption. By default, the SQLite default values are used.</p> <h3 id=pragma_cache_size_library>pragma_cache_size_library<a class=headerlink href=#pragma_cache_size_library title="Permanent link">&para;</a></h3> <p>Cache size in number of database pages for the library database.</p> <p><strong>Note:</strong> SQLite default page size is 1024 bytes and cache size is 2000 pages.</p> <div class=highlight><pre><span></span><code><a id=__codelineno-112-1 name=__codelineno-112-1 href=#__codelineno-112-1></a>pragma_cache_size_library = &lt;pages&gt;
</code></pre></div> <h3 id=pragma_cache_size_cache>pragma_cache_size_cache<a class=headerlink href=#pragma_cache_size_cache title="Permanent link">&para;</a></h3> <p>Cache size in number of db pages for the cache database.</p> <p><strong>Note:</strong> SQLite default page size is 1024 bytes and cache size is 2000 pages.</p> <div class=highlight><pre><span></span><code><a id=__codelineno-113-1 name=__codelineno-113-1 href=#__codelineno-113-1></a>pragma_cache_size_cache = &lt;pages&gt;
</code></pre></div> <h3 id=pragma_journal_mode>pragma_journal_mode<a class=headerlink href=#pragma_journal_mode title="Permanent link">&para;</a></h3> <p>Sets the journal mode for the database. Valid values are: <code>DELETE</code>, <code>TRUNCATE</code>, <code>PERSIST</code>, <code>MEMORY</code>, <code>WAL</code>, and <code>OFF</code>.</p> <p><strong>Default:</strong> <code>"DELETE"</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-114-1 name=__codelineno-114-1 href=#__codelineno-114-1></a>pragma_journal_mode = &quot;&lt;DELETE|TRUNCATE|PERSIST|MEMORY|WAL|OFF&gt;&quot;
</code></pre></div> <h3 id=pragma_synchronous>pragma_synchronous<a class=headerlink href=#pragma_synchronous title="Permanent link">&para;</a></h3> <p>Change the setting of the "synchronous" flag.</p> <p><strong>Valid values:</strong> <code>0</code> (off), <code>1</code> (normal), <code>2</code> (full)</p> <p><strong>Default:</strong> <code>2</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-115-1 name=__codelineno-115-1 href=#__codelineno-115-1></a>pragma_synchronous = &lt;0|1|2&gt;
</code></pre></div> <h3 id=pragma_mmap_size_library>pragma_mmap_size_library<a class=headerlink href=#pragma_mmap_size_library title="Permanent link">&para;</a></h3> <p>Number of bytes set aside for memory-mapped I/O for the library database.</p> <p><strong>Notes:</strong> This setting requires SQLite 3.7.17+.</p> <p><strong>Valid values:</strong> <code>0</code> (mmap disabled), <code>&lt;integer&gt;</code> (bytes for mmap)</p> <p><strong>Default:</strong> <code>0</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-116-1 name=__codelineno-116-1 href=#__codelineno-116-1></a>pragma_mmap_size_library = &lt;integer&gt;
</code></pre></div> <h3 id=pragma_mmap_size_cache>pragma_mmap_size_cache<a class=headerlink href=#pragma_mmap_size_cache title="Permanent link">&para;</a></h3> <p>Number of bytes set aside for memory-mapped I/O for the cache database.</p> <p><strong>Note:</strong> This setting requires SQLite 3.7.17+.</p> <p><strong>Valid values:</strong> <code>0</code> (mmap disabled), <code>&lt;integer&gt;</code> (bytes for mmap)</p> <div class=highlight><pre><span></span><code><a id=__codelineno-117-1 name=__codelineno-117-1 href=#__codelineno-117-1></a>pragma_mmap_size_cache = &lt;integer&gt;
</code></pre></div> <h3 id=vacuum>vacuum<a class=headerlink href=#vacuum title="Permanent link">&para;</a></h3> <p>Flag indicating whether or not the database must be vacuumed on startup.</p> <p><strong>Note:</strong> This setting increases the startup time, but may reduce database size.</p> <p><strong>Default:</strong> <code>true</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-118-1 name=__codelineno-118-1 href=#__codelineno-118-1></a>vacuum = &lt;true|false&gt;
</code></pre></div> <h2 id=streaming-settings>Streaming Settings<a class=headerlink href=#streaming-settings title="Permanent link">&para;</a></h2> <div class=highlight><pre><span></span><code><a id=__codelineno-119-1 name=__codelineno-119-1 href=#__codelineno-119-1></a>streaming {
<a id=__codelineno-119-2 name=__codelineno-119-2 href=#__codelineno-119-2></a>
<a id=__codelineno-119-3 name=__codelineno-119-3 href=#__codelineno-119-3></a>}
</code></pre></div> <p>The <code>streaming</code> section defines the audio settings for the streaming URL (<code>http://&lt;server-name&gt;:&lt;port-number&gt;/stream.mp3</code>) and accepts the settings below.</p> <h3 id=sample_rate>sample_rate<a class=headerlink href=#sample_rate title="Permanent link">&para;</a></h3> <p>Sampling rate of the stream: e.g., 44100, 48000, etc.</p> <p><strong>Default:</strong> <code>44100</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-120-1 name=__codelineno-120-1 href=#__codelineno-120-1></a>sample_rate = &lt;integer&gt;
</code></pre></div> <h3 id=bit_rate>bit_rate<a class=headerlink href=#bit_rate title="Permanent link">&para;</a></h3> <p>Bit rate of the stream (in kb/s).</p> <p><strong>Valid values:</strong> <code>64</code>, <code>96</code>, <code>128</code>, <code>192</code>, and <code>320</code>.</p> <p><strong>Default:</strong> <code>192</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-121-1 name=__codelineno-121-1 href=#__codelineno-121-1></a>bit_rate = &lt;64|96|128|192|320&gt;
</code></pre></div> <h3 id=icy_metaint>icy_metaint<a class=headerlink href=#icy_metaint title="Permanent link">&para;</a></h3> <p>Number of bytes of media stream data between each metadata chunk.</p> <p><strong>Default:</strong> <code>16384</code></p> <div class=highlight><pre><span></span><code><a id=__codelineno-122-1 name=__codelineno-122-1 href=#__codelineno-122-1></a>icy_metaint = &lt;integer&gt;
</code></pre></div> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/owntone/owntone-server target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 496 512"><!-- Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"base": "..", "features": ["navigation.tabs", "navigation.top"], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script src=../assets/javascripts/bundle.dd8806f2.min.js></script> <script src=../assets/extra.js></script> </body> </html>