|
a/doc/upmpdcli-manual.txt |
|
b/doc/upmpdcli-manual.txt |
|
... |
|
... |
510 |
impossible to achieve when going through *mpd*, and the second reason why
|
510 |
impossible to achieve when going through *mpd*, and the second reason why
|
511 |
*sc2mpd* must be set in _alsa_ mode for multiroom setups. In _mpd_ mode,
|
511 |
*sc2mpd* must be set in _alsa_ mode for multiroom setups. In _mpd_ mode,
|
512 |
the Receivers can be out of sync by several seconds.
|
512 |
the Receivers can be out of sync by several seconds.
|
513 |
|
513 |
|
514 |
|
514 |
|
515 |
[[UPMPDCLI-MS]]
|
515 |
[[UPMPDCLI-MS-STR]]
|
516 |
== Upmpdcli Media Server
|
516 |
== Upmpdcli Media Server: streaming services
|
517 |
|
517 |
|
518 |
The Media Server function in Upmpdcli (1.2.0 and later) gives access to
|
518 |
The Media Server function in Upmpdcli (1.2.0 and later) gives access to
|
519 |
external streaming services: Qobuz, Tidal, and Google Music at the moment.
|
519 |
external streaming services: Qobuz, Tidal, and Google Music at the moment.
|
520 |
|
520 |
|
521 |
You will need a valid account on any service that you want to use.
|
521 |
You will need a valid account on any service that you want to use.
|
|
... |
|
... |
611 |
|
611 |
|
612 |
You will need a valid subscription for most functions.
|
612 |
You will need a valid subscription for most functions.
|
613 |
|
613 |
|
614 |
The configuration parameters are described in the
|
614 |
The configuration parameters are described in the
|
615 |
<<gmusicuser,configuration section>>
|
615 |
<<gmusicuser,configuration section>>
|
|
|
616 |
|
|
|
617 |
|
|
|
618 |
[[UPRCL]]
|
|
|
619 |
== Upmpdcli local Media Server: uprcl
|
|
|
620 |
|
|
|
621 |
The current (2017-04) upmpdcli code base includes a Media Server function
|
|
|
622 |
for local music files, analog to MinimServer or ReadyMedia/MiniDLNA. The
|
|
|
623 |
plugin module is named uprcl.
|
|
|
624 |
|
|
|
625 |
Why yet another Media Server ? MinimServer is great, and free, but not
|
|
|
626 |
open-source. ReadyMedia is nice too, but audio file format support is
|
|
|
627 |
incomplete (there was a patch for DSD but it was never merged apparently),
|
|
|
628 |
I've always found it a bit clunky (for example: no incremental updates),
|
|
|
629 |
and development does not seem very active.
|
|
|
630 |
|
|
|
631 |
The new upmpdcli Media Server is at most beta quality. It probably has even
|
|
|
632 |
less format support than MiniDLNA... But it's written in Python, and I have
|
|
|
633 |
good hope that it can evolve faster.
|
|
|
634 |
|
|
|
635 |
Some features:
|
|
|
636 |
|
|
|
637 |
- Mostly written in Python, except for the pieces shared with the streaming
|
|
|
638 |
plugins: UPnP interface proper, and plugin management, which are C++, but
|
|
|
639 |
should not need a lot of changes.
|
|
|
640 |
- Tries to mimick the MinimServer tree view, which I find quite nice. We're
|
|
|
641 |
not quite there yet, many functions and niceties, and the customization
|
|
|
642 |
capability are missing.
|
|
|
643 |
- Uses Recoll and python-recoll (hence the uprcl name) for harvesting the
|
|
|
644 |
metadata and searching. Recoll already had almost everything needed in
|
|
|
645 |
this area, no development needed. It can perform incremental updates and
|
|
|
646 |
file system monitoring.
|
|
|
647 |
- Uses Python sqlite3 (on a memory DB) for the tags tree.
|
|
|
648 |
|
|
|
649 |
Installation and configuration: have a look at the
|
|
|
650 |
xref:uprcluser[configuration variables]
|
|
|
651 |
|
|
|
652 |
[[UPRCL-SEARCH]]
|
|
|
653 |
=== Upmpdcli/Uprcl searches
|
|
|
654 |
|
|
|
655 |
The UPnP Media Server search function is based on a specific query
|
|
|
656 |
language. This language is quite verbose, and most control points will not
|
|
|
657 |
let you access it directly. Instead, they will usually provide a generic
|
|
|
658 |
entry field in which you enter search terms. Behind the scenes, they
|
|
|
659 |
generate an UPnP search language string. This could be for example
|
|
|
660 |
something like: `upnp:class = "object.item.audioItem" and dc:title
|
|
|
661 |
contains "heaven"`
|
|
|
662 |
|
|
|
663 |
If it supports search at all, the Media Server will then interpret the
|
|
|
664 |
query string and return the results.
|
|
|
665 |
|
|
|
666 |
If the Media Server is Upmpdcli/Uprcl, there is another step: the UPnP
|
|
|
667 |
query string is translated into a Recoll one and Recoll is called to
|
|
|
668 |
perform the actual search. There is no way to directly enter a Recoll
|
|
|
669 |
search through the control point. However, two important Recoll
|
|
|
670 |
capabilities should still be visible through the layers:
|
|
|
671 |
|
|
|
672 |
.Stemming
|
|
|
673 |
|
|
|
674 |
Stemming is the capability to expand a search to the common derivatives of
|
|
|
675 |
a word. For example, a search for `floor` would be expanded to also look
|
|
|
676 |
for `floors`, `flooring`, `floored`, etc. By default, stemming is enabled
|
|
|
677 |
for Uprcl search. It can be turned off for any term by capitalizing the
|
|
|
678 |
term (Entering `Stones` will only search for `stones`, not `stone` or
|
|
|
679 |
`stoned`). Uprcl/Recoll searches are case-insensitive apart from this usage
|
|
|
680 |
of capitalization.
|
|
|
681 |
|
|
|
682 |
.Phrase searches
|
|
|
683 |
|
|
|
684 |
By default, Uprcl/Recoll searches do not observe the order
|
|
|
685 |
of terms: `red house` will be matched by a search for `house red` (or
|
|
|
686 |
`houses red`). You can change this behaviour by quoting a sequence of
|
|
|
687 |
words. A search for `"red house"` will only look for a text containing the
|
|
|
688 |
words in order. This supposes that the Control Point does not change the
|
|
|
689 |
user entry, but this is the case for at least some of them. Stemming
|
|
|
690 |
expansion does not occur within phrase searches.
|
|
|
691 |
|
|
|
692 |
Other Recoll capabilities, such as proximity searches should also be
|
|
|
693 |
accessible, but probably less useful when searching music titles or artist
|
|
|
694 |
names.
|
|
|
695 |
|
|
|
696 |
|
616 |
|
697 |
|
617 |
|
698 |
|
618 |
[[UPMPDCLI-CONFIG]]
|
699 |
[[UPMPDCLI-CONFIG]]
|
619 |
== Upmpdcli configuration file reference
|
700 |
== Upmpdcli configuration file reference
|
620 |
|
701 |
|