@ -45,10 +45,10 @@ const DOCS_SECTIONS = [
content : ( ) => `
< div class = "docs-subsection" id = "gs-overview" >
< h3 class = "docs-subsection-title" > Overview < / h 3 >
< p class = "docs-text" > SoulSync is a self - hosted music download , sync , and library management platform . It connects to < strong > Spotify < / s t r o n g > , < s t r o n g > A p p l e M u s i c / i T u n e s < / s t r o n g > , < s t r o n g > Ti d a l < / s t r o n g > , < s t r o n g > Q o b u z < / s t r o n g > , < s t r o n g > Y o u T u b e < / s t r o n g > , a n d < s t r o n g > B e a t p o r t < / s t r o n g > f o r m e t a d a t a , a n d us e s < s t r o n g > S o u l s e e k < / s t r o n g > ( v i a s l s k d ) a s t h e p r i m a r y d o w n l o a d s o u r c e . Y o u r l i b r a r y i s s e r v e d t h r o u g h < s t r o n g > P l e x < / s t r o n g > , < s t r o n g > J e l l y f i n < / s t r o n g > , o r < s t r o n g > N a v i d r o m e < / s t r o n g > . < / p >
< p class = "docs-text" > SoulSync is a self - hosted music download , sync , and library management platform . It connects to < strong > Spotify < / s t r o n g > , < s t r o n g > A p p l e M u s i c / i T u n e s < / s t r o n g > , < s t r o n g > De e z e r < / s t r o n g > , < s t r o n g > Ti d a l < / s t r o n g > , < s t r o n g > Q o b u z < / s t r o n g > , < s t r o n g > Y o u T u b e < / s t r o n g > , a n d < s t r o n g > B e a t p o r t < / s t r o n g > f o r m e t a d a t a , a n d do w n l o a d s f r o m < s t r o n g > S o u l s e e k < / s t r o n g > , < s t r o n g > Y o u T u b e < / s t r o n g > , < s t r o n g > T i d a l < / s t r o n g > , < s t r o n g > Q o b u z < / s t r o n g > , < s t r o n g > H i F i < / s t r o n g > , a n d < s t r o n g > D e e z e r < / s t r o n g > . Y o u r l i b r a r y i s s e r v e d t h r o u g h < s t r o n g > P l e x < / s t r o n g > , < s t r o n g > J e l l y f i n < / s t r o n g > , o r < s t r o n g > N a v i d r o m e < / s t r o n g > . < / p >
$ { docsImg ( 'gs-overview.jpg' , 'SoulSync dashboard overview' ) }
< div class = "docs-features" >
< div class = "docs-feature-card" > < h4 > & # x1F3B5 ; Download Music < / h 4 > < p > S e a r c h a n d d o w n l o a d t r a c k s i n F L A C , M P 3 , a n d m o r e f r o m So u l s e e k , Y o u T u b e , T i d a l , or Q o b u z , w i t h a u t o m a t i c m e t a d a t a t a g g i n g a n d f i l e o r g a n i z a t i o n . < / p > < / d i v >
< div class = "docs-feature-card" > < h4 > & # x1F3B5 ; Download Music < / h 4 > < p > S e a r c h a n d d o w n l o a d t r a c k s i n F L A C , M P 3 , a n d m o r e f r o m 6 s o u r c e s ( So u l s e e k , Y o u T u b e , T i d a l , Qo b u z , H i F i , D e e z e r ) , w i t h a u t o m a t i c m e t a d a t a t a g g i n g a n d f i l e o r g a n i z a t i o n . < / p > < / d i v >
< div class = "docs-feature-card" > < h4 > & # x1F504 ; Playlist Sync < / h 4 > < p > M i r r o r p l a y l i s t s f r o m S p o t i f y , Y o u T u b e , T i d a l , a n d B e a t p o r t . D i s c o v e r o f f i c i a l m e t a d a t a a n d s y n c t o y o u r m e d i a s e r v e r . < / p > < / d i v >
< div class = "docs-feature-card" > < h4 > & # x1F4DA ; Library Management < / h 4 > < p > B r o w s e , e d i t , a n d e n r i c h y o u r m u s i c l i b r a r y w i t h m e t a d a t a f r o m 9 s e r v i c e s . W r i t e t a g s d i r e c t l y t o a u d i o f i l e s . < / p > < / d i v >
< div class = "docs-feature-card" > < h4 > & # x1F916 ; Automations < / h 4 > < p > S c h e d u l e t a s k s , c h a i n w o r k f l o w s w i t h s i g n a l s , a n d g e t n o t i f i e d v i a D i s c o r d , P u s h b u l l e t , o r T e l e g r a m . < / p > < / d i v >
@ -60,13 +60,13 @@ const DOCS_SECTIONS = [
< h3 class = "docs-subsection-title" > First - Time Setup < / h 3 >
< p class = "docs-text" > After launching SoulSync , head to the < strong > Settings < / s t r o n g > p a g e t o c o n f i g u r e y o u r s e r v i c e s . A t m i n i m u m y o u n e e d : < / p >
< ol class = "docs-steps" >
< li > < strong > Download Source < / s t r o n g > & m d a s h ; C o n n e c t a t l e a s t o n e d o w n l o a d s o u r c e : S o u l s e e k ( s l s k d ) , Y o u T u b e , T i d a l , or Q o b u z . S o u l s e e k o f f e r s t h e b e s t q u a l i t y s e l e c t i o n ; Yo u T u b e , T i d a l , a n d Q o b u z w o r k a s a l t e r n a t i v e s o r f a l l b a c k s i n H y b r i d m o d e . < / l i >
< li > < strong > Download Source < / s t r o n g > & m d a s h ; C o n n e c t a t l e a s t o n e d o w n l o a d s o u r c e : S o u l s e e k ( s l s k d ) , Y o u T u b e , T i d a l , Qo b u z , H i F i , o r D e e z e r . S o u l s e e k o f f e r s t h e b e s t q u a l i t y s e l e c t i o n ; th e o t h e r s w o r k a s a l t e r n a t i v e s o r f a l l b a c k s i n H y b r i d m o d e . < / l i >
< li > < strong > Media Server < / s t r o n g > & m d a s h ; C o n n e c t P l e x , J e l l y f i n , o r N a v i d r o m e s o S o u l S y n c k n o w s w h e r e y o u r l i b r a r y l i v e s a n d c a n t r i g g e r s c a n s . < / l i >
< li > < strong > Spotify ( Recommended ) < / s t r o n g > & m d a s h ; C o n n e c t S p o t i f y f o r t h e r i c h e s t m e t a d a t a . C r e a t e a n a p p a t < s t r o n g > d e v e l o p e r . s p o t i f y . c o m < / s t r o n g > , e n t e r y o u r C l i e n t I D a n d S e c r e t , t h e n c l i c k A u t h e n t i c a t e . < / l i >
< li > < strong > Download Path < / s t r o n g > & m d a s h ; S e t y o u r d o w n l o a d a n d t r a n s f e r p a t h s i n t h e D o w n l o a d S e t t i n g s s e c t i o n . T h e t r a n s f e r p a t h s h o u l d p o i n t t o y o u r m e d i a s e r v e r ' s m o n i t o r e d f o l d e r . < / l i >
< / o l >
$ { docsImg ( 'gs-first-setup.jpg' , 'Settings page first-time setup' ) }
< div class = "docs-callout tip" > < span class = "docs-callout-icon" > & # x1F4A1 ; < / s p a n > < d i v > Y o u c a n s t a r t u s i n g S o u l S y n c w i t h j u s t o n e d o w n l o a d s o u r c e ( S o u l s e e k , Y o u T u b e , T i d a l , o r Q o b u z ) . S p o t i f y a n d o t h e r s e r v i c e s a d d m e t a d a t a e n r i c h m e n t b u t a r e n ' t s t r i c t l y r e q u i r e d & m d a s h ; i T u n e s / A p p l e M u s i c is a l w a y s a v a i l a b l e a s a fr e e f a l l b a c k . < / d i v > < / d i v >
< div class = "docs-callout tip" > < span class = "docs-callout-icon" > & # x1F4A1 ; < / s p a n > < d i v > Y o u c a n s t a r t u s i n g S o u l S y n c w i t h j u s t o n e d o w n l o a d s o u r c e . S p o t i f y a n d o t h e r s e r v i c e s a d d m e t a d a t a e n r i c h m e n t b u t a r e n ' t s t r i c t l y r e q u i r e d & m d a s h ; i T u n e s / A p p l e M u s i c an d D e e z e r a r e a l w a y s a v a i l a b l e a s fr e e f a l l b a c k s . < / d i v > < / d i v >
< / d i v >
< div class = "docs-subsection" id = "gs-connecting" >
< h3 class = "docs-subsection-title" > Connecting Services < / h 3 >
@ -80,6 +80,8 @@ const DOCS_SECTIONS = [
< tr > < td > < strong > YouTube < / s t r o n g > < / t d > < t d > D o w n l o a d s o u r c e & m d a s h ; a u d i o e x t r a c t i o n v i a y t - d l p < / t d > < t d > N o n e ( o p t i o n a l c o o k i e s b r o w s e r ) < / t d > < / t r >
< tr > < td > < strong > Tidal < / s t r o n g > < / t d > < t d > D o w n l o a d s o u r c e + p l a y l i s t i m p o r t + e n r i c h m e n t < / t d > < t d > O A u t h & m d a s h ; C l i e n t I D + S e c r e t < / t d > < / t r >
< tr > < td > < strong > Qobuz < / s t r o n g > < / t d > < t d > D o w n l o a d s o u r c e + e n r i c h m e n t < / t d > < t d > U s e r n a m e + P a s s w o r d ( a p p I D a u t o - f e t c h e d ) < / t d > < / t r >
< tr > < td > < strong > HiFi < / s t r o n g > < / t d > < t d > D o w n l o a d s o u r c e & m d a s h ; f r e e l o s s l e s s v i a c o m m u n i t y A P I < / t d > < t d > N o n e < / t d > < / t r >
< tr > < td > < strong > Deezer < / s t r o n g > < / t d > < t d > D o w n l o a d s o u r c e + m e t a d a t a f a l l b a c k < / t d > < t d > A R L c o o k i e t o k e n < / t d > < / t r >
< tr > < td > < strong > Plex < / s t r o n g > < / t d > < t d > M e d i a s e r v e r & m d a s h ; l i b r a r y s c a n n i n g , m e t a d a t a s y n c , a u d i o s t r e a m i n g < / t d > < t d > U R L + T o k e n < / t d > < / t r >
< tr > < td > < strong > Jellyfin < / s t r o n g > < / t d > < t d > M e d i a s e r v e r & m d a s h ; l i b r a r y s c a n n i n g , a u d i o s t r e a m i n g < / t d > < t d > U R L + A P I K e y < / t d > < / t r >
< tr > < td > < strong > Navidrome < / s t r o n g > < / t d > < t d > M e d i a s e r v e r & m d a s h ; a u t o - d e t e c t s c h a n g e s , a u d i o s t r e a m i n g < / t d > < t d > U R L + U s e r n a m e + P a s s w o r d < / t d > < / t r >
@ -668,12 +670,13 @@ const DOCS_SECTIONS = [
content : ( ) => `
< div class = "docs-subsection" id = "search-enhanced" >
< h3 class = "docs-subsection-title" > Enhanced Search < / h 3 >
< p class = "docs-text" > The default search mode . Type an artist , album , or track name and results appear in a categorized dropdown : < strong > In Your Library < / s t r o n g > , < s t r o n g > A r t i s t s < / s t r o n g > , < s t r o n g > A l b u m s < / s t r o n g > , < s t r o n g > S i n g l e s & E P s < / s t r o n g > , a n d < s t r o n g > T r a c k s < / s t r o n g > . R e s u l t s c o m e f r o m Sp o t i f y ( o r i T u n e s i f S p o t i f y i s u n a v a i l a b l e ) . < / p >
< p class = "docs-text" > The default search mode . Type an artist , album , or track name and results appear in a categorized dropdown : < strong > In Your Library < / s t r o n g > , < s t r o n g > A r t i s t s < / s t r o n g > , < s t r o n g > A l b u m s < / s t r o n g > , < s t r o n g > S i n g l e s & E P s < / s t r o n g > , a n d < s t r o n g > T r a c k s < / s t r o n g > . R e s u l t s c o m e f r o m yo u r p r i m a r y m e t a d a t a s o u r c e ( S p o t i f y b y d e f a u l t ) . < / p >
< ul class = "docs-list" >
< li > Click an < strong > artist < / s t r o n g > t o v i e w t h e i r f u l l d i s c o g r a p h y w i t h d o w n l o a d b u t t o n s o n e a c h r e l e a s e < / l i >
< li > Click an < strong > album < / s t r o n g > t o o p e n t h e d o w n l o a d m o d a l w i t h t r a c k s e l e c t i o n < / l i >
< li > Click a < strong > track < / s t r o n g > t o s e a r c h So u l s e e k f o r t h a t s p e c i f i c s o n g < / l i >
< li > Click a < strong > track < / s t r o n g > t o s e a r c h yo u r d o w n l o a d s o u r c e f o r t h a t s p e c i f i c s o n g < / l i >
< li > < strong > Preview tracks < / s t r o n g > & m d a s h ; P l a y b u t t o n o n s e a r c h r e s u l t t r a c k s l e t s y o u s t r e a m a p r e v i e w d i r e c t l y f r o m y o u r d o w n l o a d s o u r c e b e f o r e c o m m i t t i n g t o a d o w n l o a d < / l i >
< li > < strong > Multi - source tabs < / s t r o n g > & m d a s h ; S w i t c h b e t w e e n m e t a d a t a s o u r c e s ( S p o t i f y , i T u n e s , D e e z e r ) u s i n g t a b s a b o v e t h e r e s u l t s . E a c h s o u r c e r e t u r n s i t s o w n c a t a l o g , s o t r a c k s m i s s i n g o n o n e m a y b e f o u n d o n a n o t h e r < / l i >
< / u l >
$ { docsImg ( 'dl-enhanced-search.jpg' , 'Enhanced search results' ) }
< / d i v >
@ -693,10 +696,12 @@ const DOCS_SECTIONS = [
< tr > < td > < strong > YouTube < / s t r o n g > < / t d > < t d > Y o u T u b e a u d i o e x t r a c t i o n v i a y t - d l p < / t d > < t d > L i v e p e r f o r m a n c e s , r e m i x e s , t r a c k s n o t o n S o u l s e e k < / t d > < / t r >
< tr > < td > < strong > Tidal < / s t r o n g > < / t d > < t d > T i d a l H i F i s t r e a m i n g r i p ( r e q u i r e s a u t h ) < / t d > < t d > G u a r a n t e e d q u a l i t y , o f f i c i a l r e l e a s e s < / t d > < / t r >
< tr > < td > < strong > Qobuz < / s t r o n g > < / t d > < t d > Q o b u z H i - R e s s t r e a m i n g r i p ( r e q u i r e s a u t h ) < / t d > < t d > A u d i o p h i l e q u a l i t y , u p t o 2 4 - b i t / 1 9 2 k H z < / t d > < / t r >
< tr > < td > < strong > HiFi < / s t r o n g > < / t d > < t d > F r e e l o s s l e s s d o w n l o a d s v i a c o m m u n i t y - r u n A P I i n s t a n c e s < / t d > < t d > N o a c c o u n t n e e d e d , g o o d F L A C a v a i l a b i l i t y < / t d > < / t r >
< tr > < td > < strong > Deezer < / s t r o n g > < / t d > < t d > D e e z e r s t r e a m i n g r i p v i a A R L t o k e n ( F L A C / M P 3 ) < / t d > < t d > L a r g e c a t a l o g , e a s y s e t u p , F L A C w i t h H i F i s u b < / t d > < / t r >
< tr > < td > < strong > Hybrid < / s t r o n g > < / t d > < t d > T r i e s y o u r p r i m a r y s o u r c e f i r s t , t h e n a u t o m a t i c a l l y f a l l s b a c k t o a l t e r n a t e s < / t d > < t d > B e s t o v e r a l l s u c c e s s r a t e < / t d > < / t r >
< / t b o d y >
< / t a b l e >
< div class = "docs-callout tip" > < span class = "docs-callout-icon" > & # x1F4A1 ; < / s p a n > < d i v > < s t r o n g > H y b r i d m o d e < / s t r o n g > i s r e c o m m e n d e d f o r m o s t u s e r s . I t t r i e s So u l s e e k f i r s t ( b e s t q u a l i t y ) , t h e n f a l l s b a c k t o Y o u T u b e , T i d a l , o r Q o b u z i f n o s u i t a b l e r e s u l t s a r e f o u n d . T h e f a l l b a c k o r d e r a n d p r i o r i t y a r e c o n f i g u r a b l e v i a d r a g - a n d - d r o p i n S e t t i n g s . < / d i v > < / d i v >
< div class = "docs-callout tip" > < span class = "docs-callout-icon" > & # x1F4A1 ; < / s p a n > < d i v > < s t r o n g > H y b r i d m o d e < / s t r o n g > i s r e c o m m e n d e d f o r m o s t u s e r s . I t t r i e s yo u r p r i m a r y s o u r c e f i r s t , t h e n f a l l s b a c k t hr o u g h y o u r c o n f i g u r e d p r i o r i t y o r d e r . A l l s i x s o u r c e s ( S o u l s e e k , Y o u T u b e , T i d a l , Q o b u z , H i F i , D e e z e r ) c a n b e o r d e r e d v i a d r a g - a n d - d r o p i n S e t t i n g s . < / d i v > < / d i v >
< p class = "docs-text" > < strong > YouTube settings < / s t r o n g > i n c l u d e c o o k i e s b r o w s e r s e l e c t i o n ( f o r b o t d e t e c t i o n b y p a s s ) , d o w n l o a d d e l a y ( s e c o n d s b e t w e e n r e q u e s t s ) , a n d m i n i m u m c o n f i d e n c e t h r e s h o l d f o r t i t l e m a t c h i n g . < / p >
< / d i v >
< div class = "docs-subsection" id = "search-downloading" >
@ -715,10 +720,10 @@ const DOCS_SECTIONS = [
< h3 class = "docs-subsection-title" > Post - Processing Pipeline < / h 3 >
< p class = "docs-text" > After a file is downloaded , it goes through an automatic pipeline before appearing in your library : < / p >
< ol class = "docs-steps" >
< li > < strong > AcoustID Fingerprint Verification < / s t r o n g > & m d a s h ; I f A c o u s t I D i s c o n f i g u r e d , t h e d o w n l o a d e d f i l e i s f i n g e r p r i n t e d a n d c o m p a r e d a g a i n s t t h e e x p e c t e d t r a c k . T i t l e a n d a r t i s t a r e f u z z y - m a t c h e d ( t i t l e & g e ; 7 0 % s i m i l a r i t y , a r t i s t & g e ; 6 0 % ) . F i l e s t h a t f a i l v e r i f i c a t i o n a r e < s t r o n g > q u a r a n t i n e d < / s t r o n g > i n s t e a d o f a d d e d t o y o u r l i b r a r y . </ l i >
< li > < strong > AcoustID Fingerprint Verification < / s t r o n g > & m d a s h ; I f A c o u s t I D i s c o n f i g u r e d , t h e d o w n l o a d e d f i l e i s f i n g e r p r i n t e d a n d c o m p a r e d a g a i n s t t h e e x p e c t e d t r a c k . T i t l e a n d a r t i s t a r e f u z z y - m a t c h e d ( t i t l e & g e ; 7 0 % s i m i l a r i t y , a r t i s t & g e ; 6 0 % ) . F i l e s t h a t f a i l v e r i f i c a t i o n a r e < s t r o n g > q u a r a n t i n e d < / s t r o n g > i n s t e a d o f a d d e d t o y o u r l i b r a r y . < e m > N o t e : A c o u s t I D i s s k i p p e d f o r s t r e a m i n g s o u r c e s ( T i d a l , Q o b u z , D e e z e r , H i F i ) s i n c e f i l e s a r e d o w n l o a d e d b y e x a c t t r a c k I D . H o w e v e r , s t r e a m i n g s e a r c h r e s u l t s a r e s t i l l v e r i f i e d b y a r t i s t a n d t i t l e m a t c h i n g b e f o r e d o w n l o a d t o p r e v e n t w r o n g - t r a c k m a t c h e s ( e . g . s a m e t i t l e , d i f f e r e n t a r t i s t ) . < / e m > </ l i >
< li > < strong > Metadata Tagging < / s t r o n g > & m d a s h ; T h e f i l e i s t a g g e d w i t h o f f i c i a l m e t a d a t a : t i t l e , a r t i s t , a l b u m a r t i s t , a l b u m , t r a c k n u m b e r , d i s c n u m b e r , y e a r , g e n r e , a n d c o m p o s e r . T a g s a r e w r i t t e n u s i n g M u t a g e n ( s u p p o r t s M P 3 , F L A C , O G G , M 4 A ) . < / l i >
< li > < strong > Cover Art Embedding < / s t r o n g > & m d a s h ; A l b u m a r t w o r k i s d o w n l o a d e d f r o m t h e m e t a d a t a s o u r c e a n d e m b e d d e d d i r e c t l y i n t o t h e a u d i o f i l e . < / l i >
< li > < strong > File Organization < / s t r o n g > & m d a s h ; T h e f i l e i s r e n a m e d a n d m o v e d t o y o u r t r a n s f e r p a t h f o l l o w i n g th e t e m p l a t e : < c o d e > A r t i s t / A l b u m / T r a c k N u m - T i t l e . e x t < / c o d e > . F o r < s t r o n g > m u l t i - d i s c a l b u m s < / s t r o n g > , a < c o d e > D i s c N / < / c o d e > s u b f o l d e r i s a u t o m a t i c a l l y c r e a t e d w h e n t h e a l b u m h a s m o r e t h a n o n e d i s c . < / l i >
< li > < strong > File Organization < / s t r o n g > & m d a s h ; T h e f i l e i s r e n a m e d a n d m o v e d t o y o u r t r a n s f e r p a t h f o l l o w i n g cu s t o m i z a b l e t e m p l a t e s . S e p a r a t e t e m p l a t e s f o r a l b u m s , s i n g l e s , a n d p l a y l i s t s a r e c o n f i g u r e d i n S e t t i n g s . A v a i l a b l e v a r i a b l e s i n c l u d e < c o d e > $ a r t i s t < / c o d e > , < c o d e > $ a l b u m < / c o d e > , < c o d e > $ t i t l e < / c o d e > , < c o d e > $ t r a c k < / c o d e > , < c o d e > $ y e a r < / c o d e > , < c o d e > $ q u a l i t y < / c o d e > , a n d < c o d e > $ a l b u m t y p e < / c o d e > ( r e s o l v e s t o A l b u m , S i n g l e , E P , o r C o m p i l a t i o n ) . F o r < s t r o n g > m u l t i - d i s c a l b u m s < / s t r o n g > , a < c o d e > D i s c N / < / c o d e > s u b f o l d e r i s a u t o m a t i c a l l y c r e a t e d w h e n t h e a l b u m h a s m o r e t h a n o n e d i s c ( o r u s e < c o d e > $ d i s c < / c o d e > i n y o u r t e m p l a t e f o r m a n u a l c o n t r o l ) . < / l i >
< li > < strong > Lyrics ( LRC ) < / s t r o n g > & m d a s h ; S y n c e d l y r i c s a r e f e t c h e d f r o m t h e L R C l i b A P I a n d s a v e d a s < c o d e > . l r c < / c o d e > s i d e c a r f i l e s a l o n g s i d e t h e a u d i o f i l e . C o m p a t i b l e m e d i a p l a y e r s ( f o o b a r 2 0 0 0 , M u s i c B e e , P l e x , e t c . ) w i l l d i s p l a y t i m e - s y n c e d l y r i c s a u t o m a t i c a l l y . F a l l s b a c k t o p l a i n - t e x t l y r i c s i f s y n c e d v e r s i o n s a r e n ' t a v a i l a b l e . < / l i >
< li > < strong > Lossy Copy < / s t r o n g > & m d a s h ; I f e n a b l e d i n s e t t i n g s , a l o w e r - b i t r a t e c o p y i s c r e a t e d a l o n g s i d e t h e o r i g i n a l ( u s e f u l f o r m o b i l e d e v i c e s y n c i n g ) . < / l i >
< li > < strong > Media Server Scan < / s t r o n g > & m d a s h ; Y o u r m e d i a s e r v e r ( P l e x / J e l l y f i n ) i s n o t i f i e d t o s c a n f o r t h e n e w f i l e . N a v i d r o m e a u t o - d e t e c t s c h a n g e s . < / l i >
@ -738,6 +743,7 @@ const DOCS_SECTIONS = [
< / t b o d y >
< / t a b l e >
< p class = "docs-text" > Each format has configurable bitrate ranges and a priority order . Enable < strong > Fallback < / s t r o n g > t o a c c e p t a n y q u a l i t y w h e n p r e f e r r e d f o r m a t s a r e n ' t a v a i l a b l e . < / p >
< div class = "docs-callout tip" > < span class = "docs-callout-icon" > & # x1F4A1 ; < / s p a n > < d i v > < s t r o n g > S t r e a m i n g s o u r c e q u a l i t y < / s t r o n g > : T i d a l , Q o b u z , H i F i , a n d D e e z e r e a c h h a v e t h e i r o w n q u a l i t y d r o p d o w n i n S e t t i n g s . B y d e f a u l t , i f y o u r p r e f e r r e d q u a l i t y i s n ' t a v a i l a b l e f o r a t r a c k , t h e s o u r c e f a l l s b a c k t o t h e n e x t l o w e r t i e r ( e . g . F L A C & r a r r ; A A C 3 2 0 ) . D i s a b l e < s t r o n g > A l l o w q u a l i t y f a l l b a c k < / s t r o n g > n e x t t o t h e q u a l i t y d r o p d o w n t o e n f o r c e s t r i c t q u a l i t y & m d a s h ; t h e s o u r c e w i l l s k i p t r a c k s i t c a n ' t d e l i v e r a t y o u r c h o s e n q u a l i t y , a n d t h e o r c h e s t r a t o r w i l l t r y t h e n e x t s o u r c e i n y o u r p r i o r i t y l i s t . < / d i v > < / d i v >
$ { docsImg ( 'dl-quality-profiles.jpg' , 'Quality profile settings' ) }
< / d i v >
< div class = "docs-subsection" id = "search-manager" >
@ -1221,6 +1227,8 @@ const DOCS_SECTIONS = [
< li > < strong > Last . fm < / s t r o n g > & m d a s h ; A P I k e y f r o m l a s t . f m / a p i < / l i >
< li > < strong > Genius < / s t r o n g > & m d a s h ; A c c e s s t o k e n f r o m g e n i u s . c o m / a p i - c l i e n t s < / l i >
< li > < strong > Qobuz < / s t r o n g > & m d a s h ; U s e r n a m e + P a s s w o r d ( a p p I D i s a u t o - f e t c h e d ) < / l i >
< li > < strong > HiFi < / s t r o n g > & m d a s h ; N o c r e d e n t i a l s n e e d e d , u s e s c o m m u n i t y - r u n A P I i n s t a n c e s . T e s t C o n n e c t i o n t o v e r i f y . < / l i >
< li > < strong > Deezer < / s t r o n g > & m d a s h ; A R L c o o k i e t o k e n f r o m y o u r b r o w s e r ( l o g i n t o d e e z e r . c o m & r a r r ; D e v T o o l s & r a r r ; C o o k i e s & r a r r ; c o p y < c o d e > a r l < / c o d e > ) < / l i >
< li > < strong > AcoustID < / s t r o n g > & m d a s h ; A P I k e y f r o m a c o u s t i d . o r g ( e n a b l e s f i n g e r p r i n t v e r i f i c a t i o n ) < / l i >
< li > < strong > ListenBrainz < / s t r o n g > & m d a s h ; B a s e U R L + t o k e n f o r l i s t e n i n g h i s t o r y a n d p l a y l i s t i m p o r t < / l i >
< / u l >
@ -1243,7 +1251,7 @@ const DOCS_SECTIONS = [
< div class = "docs-subsection" id = "set-download" >
< h3 class = "docs-subsection-title" > Download Settings < / h 3 >
< ul class = "docs-list" >
< li > < strong > Download Source Mode < / s t r o n g > & m d a s h ; S o u l s e e k , Y o u T u b e , T i d a l , Q o b u z , or H y b r i d . H y b r i d t r i e s y o u r p r i m a r y s o u r c e f i r s t , t h e n f a l l s b a c k t o a l t e r n a t e s w i t h c o n f i g u r a b l e p r i o r i t y v i a d r a g - a n d - d r o p . Se e < e m > D o w n l o a d S o u r c e s < / e m > i n t h e M u s i c D o w n l o a d s s e c t i o n f o r d e t a i l s . < / l i >
< li > < strong > Download Source Mode < / s t r o n g > & m d a s h ; S o u l s e e k , Y o u T u b e , T i d a l , Q o b u z , Hi F i , D e e z e r , or H y b r i d . H y b r i d t r i e s y o u r p r i m a r y s o u r c e f i r s t , t h e n f a l l s b a c k t o a l t e r n a t e s w i t h c o n f i g u r a b l e p r i o r i t y v i a d r a g - a n d - d r o p . Ea c h s t r e a m i n g s o u r c e h a s i t s o w n q u a l i t y d r o p d o w n a n d a n < s t r o n g > A l l o w q u a l i t y f a l l b a c k < / s t r o n g > t o g g l e . Se e < e m > D o w n l o a d S o u r c e s < / e m > a n d < e m > Q u a l i t y P r o f i l e s < / e m > i n t h e M u s i c D o w n l o a d s s e c t i o n f o r d e t a i l s . < / l i >
< li > < strong > Download Path < / s t r o n g > & m d a s h ; T h e f o l d e r w h e r e f i l e s a r e i n i t i a l l y d o w n l o a d e d . T h i s < s t r o n g > m u s t m a t c h < / s t r o n g > t h e f o l d e r y o u r d o w n l o a d s o u r c e ( s l s k d ) w r i t e s t o . I n D o c k e r , t h i s i s t h e c o n t a i n e r - s i d e m o u n t p o i n t ( e . g . , < c o d e > / a p p / d o w n l o a d s < / c o d e > ) , n o t t h e h o s t p a t h . S o u l S y n c m o n i t o r s t h i s f o l d e r f o r c o m p l e t e d d o w n l o a d s t o b e g i n p o s t - p r o c e s s i n g . < / l i >
< li > < strong > Transfer Path < / s t r o n g > & m d a s h ; T h e f i n a l d e s t i n a t i o n f o r p r o c e s s e d m u s i c f i l e s . A f t e r t a g g i n g , r e n a m i n g , a n d o r g a n i z i n g , f i l e s a r e m o v e d h e r e . T h i s < s t r o n g > m u s t < / s t r o n g > p o i n t t o y o u r m e d i a s e r v e r ' s m o n i t o r e d m u s i c f o l d e r ( t h e f o l d e r P l e x / J e l l y f i n / N a v i d r o m e w a t c h e s f o r n e w c o n t e n t ) . I n D o c k e r , u s e t h e c o n t a i n e r - s i d e p a t h ( e . g . , < c o d e > / a p p / T r a n s f e r < / c o d e > ) . < / l i >
< li > < strong > Staging Path < / s t r o n g > & m d a s h ; F o l d e r f o r t h e I m p o r t f e a t u r e ( f i l e s p l a c e d h e r e a p p e a r o n t h e I m p o r t p a g e ) . S e p a r a t e f r o m t h e d o w n l o a d / t r a n s f e r p i p e l i n e . < / l i >