Mopidy: Difference between revisions

From NixOS Wiki
Create Mopidy page with instructions for configuring mopidy-youtube with yt-dlp
 
H7x4 (talk | contribs)
m Fix source code formatting
 
(One intermediate revision by one other user not shown)
Line 8: Line 8:
=== mopidy-youtube ===
=== mopidy-youtube ===
By default, the <code>mopidy-youtube</code> extension relies on [https://github.com/ytdl-org/youtube-dl youtube-dl] as the backend for downloading from YouTube, but it can be configured to use a compatible alternative backend such as [https://github.com/yt-dlp/yt-dlp yt-dlp]. Due to the way Mopidy extensions are implemented in nixpkgs, to add another module to the Python environment of <code>mopidy-youtube</code>, the mopidy package set must be overridden like so:
By default, the <code>mopidy-youtube</code> extension relies on [https://github.com/ytdl-org/youtube-dl youtube-dl] as the backend for downloading from YouTube, but it can be configured to use a compatible alternative backend such as [https://github.com/yt-dlp/yt-dlp yt-dlp]. Due to the way Mopidy extensions are implemented in nixpkgs, to add another module to the Python environment of <code>mopidy-youtube</code>, the mopidy package set must be overridden like so:
services.mopidy = let
 
<nowiki> </nowiki> mopidyPackagesOverride = pkgs.mopidyPackages.overrideScope (prev: final: { extraPkgs = pkgs: [ pkgs.yt-dlp ]; });
<syntaxhighlight lang="nix">
in {
services.mopidy = let
<nowiki> </nowiki> extensionPackages = with mopidyPackagesOverride; [
  mopidyPackagesOverride = pkgs.mopidyPackages.overrideScope (prev: final: {
<nowiki> </nowiki>  mopidy-youtube
    extraPkgs = pkgs: [ pkgs.yt-dlp ];
<nowiki> </nowiki> ];
  });
<nowiki> </nowiki> configuration = <nowiki>''</nowiki>
in {
<nowiki> </nowiki>  [youtube]
  extensionPackages = with mopidyPackagesOverride; [
<nowiki> </nowiki>  youtube_dl_package = yt_dlp
    mopidy-youtube
<nowiki> </nowiki> <nowiki>''</nowiki>;
  ];
}
  configuration = ''
    [youtube]
    youtube_dl_package = yt_dlp
  '';
}
</syntaxhighlight>
 
[[Category:Server]]

Latest revision as of 10:15, 12 September 2024

Mopidy is an MPD-compatible music server written in Python.

On NixOS, Mopidy is configured via the services.mopidy options.

Extensions

Mopidy extensions are installed by adding their package to services.mopidy.extensionPackages.

mopidy-youtube

By default, the mopidy-youtube extension relies on youtube-dl as the backend for downloading from YouTube, but it can be configured to use a compatible alternative backend such as yt-dlp. Due to the way Mopidy extensions are implemented in nixpkgs, to add another module to the Python environment of mopidy-youtube, the mopidy package set must be overridden like so:

services.mopidy = let
  mopidyPackagesOverride = pkgs.mopidyPackages.overrideScope (prev: final: {
    extraPkgs = pkgs: [ pkgs.yt-dlp ];
  });
in {
  extensionPackages = with mopidyPackagesOverride; [
    mopidy-youtube
  ];
  configuration = ''
    [youtube]
    youtube_dl_package = yt_dlp
  '';
}