Unverified Commit e56afd06 authored by Franz Pletz's avatar Franz Pletz
Browse files

mopidy-youtube: replace youtube-dl with yt-dlp

parent 5a82f82c
Loading
Loading
Loading
Loading
+32 −18
Original line number Diff line number Diff line
{ lib
, fetchFromGitHub
, python3
, mopidy
, extraPkgs ? pkgs: []
{
  lib,
  fetchFromGitHub,
  python3,
  mopidy,
  yt-dlp,
  extraPkgs ? pkgs: [ ],
}:

python3.pkgs.buildPythonApplication rec {
@@ -17,22 +19,36 @@ python3.pkgs.buildPythonApplication rec {
    hash = "sha256-iFt7r8Ljymc+grNJiOClTHkZOeo7AcYpcNc8tLMPROk=";
  };

  propagatedBuildInputs = with python3.pkgs; [
  propagatedBuildInputs =
    with python3.pkgs;
    [
      beautifulsoup4
      cachetools
      pykka
      requests
    youtube-dl
      ytmusicapi
  ] ++ [
    ]
    ++ [
      mopidy
  ] ++ extraPkgs pkgs;
      yt-dlp
    ]
    ++ extraPkgs pkgs;

  nativeCheckInputs = with python3.pkgs; [
    vcrpy
    pytestCheckHook
  ];

  postPatch = ''
    substituteInPlace mopidy_youtube/youtube.py \
      --replace-fail 'youtube_dl_package = "youtube_dl"' 'youtube_dl_package = "yt_dlp"'
    substituteInPlace tests/conftest.py \
      --replace-fail 'import youtube_dl' 'import yt_dlp' \
      --replace-fail 'patcher = mock.patch.object(youtube, "youtube_dl", spec=youtube_dl)' \
      'patcher = mock.patch.object(youtube, "youtube_dl", spec=yt_dlp)' \
      --replace-fail '"youtube_dl_package": "youtube_dl",' '"youtube_dl_package": "yt_dlp",'
  '';

  disabledTests = [
    # Test requires a YouTube API key
    "test_get_default_config"
@@ -45,9 +61,7 @@ python3.pkgs.buildPythonApplication rec {
    "tests/test_youtube.py"
  ];

  pythonImportsCheck = [
    "mopidy_youtube"
  ];
  pythonImportsCheck = [ "mopidy_youtube" ];

  meta = with lib; {
    description = "Mopidy extension for playing music from YouTube";