diff --git a/bin/mtag/audio-key.py b/bin/mtag/audio-key.py index 9d79ebbd..9aad256b 100755 --- a/bin/mtag/audio-key.py +++ b/bin/mtag/audio-key.py @@ -4,13 +4,19 @@ import os import sys import tempfile import subprocess as sp -import keyfinder + +try: + import keyfinder + + PKF = True +except: + PKF = False from copyparty.util import fsenc """ dep: github/mixxxdj/libkeyfinder -dep: pypi/keyfinder +dep: pypi/keyfinder -OR- EvanPurkhiser/keyfinder-cli dep: ffmpeg """ @@ -35,7 +41,17 @@ def det(tf): ]) # fmt: on - print(keyfinder.key(tf).camelot()) + if PKF: + print(keyfinder.key(tf).camelot()) + else: + # fmt: off + sp.check_call([ + b"keyfinder-cli", + b"-n", + b"camelot", + fsenc(tf) + ]) + # fmt: on def main(): diff --git a/bin/mtag/install-deps.sh b/bin/mtag/install-deps.sh index 55473911..811a8263 100755 --- a/bin/mtag/install-deps.sh +++ b/bin/mtag/install-deps.sh @@ -155,6 +155,11 @@ install_keyfinder() { return } + (cat /etc/alpine-release || echo a) 2>&1 | grep -E '3\.2[3-9]' && { + echo "alpine too new; ffmpeg8 is keyfinder-py incompat; giving up" + return + } + cd "$td" github_tarball https://api.github.com/repos/mixxxdj/libkeyfinder/releases/latest ls -al @@ -189,7 +194,7 @@ install_keyfinder() { exit 1 } - x=${-//[^x]/}; set -x; cat /etc/alpine-release + x=${-//[^x]/}; set -x; cat /etc/alpine-release || true # rm -rf /Users/ed/Library/Python/3.9/lib/python/site-packages/*keyfinder* CFLAGS="-I$h/pe/keyfinder/include -I/opt/local/include -I/usr/include/ffmpeg" \ CXXFLAGS="-I$h/pe/keyfinder/include -I/opt/local/include -I/usr/include/ffmpeg" \ diff --git a/scripts/docker/Dockerfile.dj b/scripts/docker/Dockerfile.dj index b377537b..68d56dd2 100644 --- a/scripts/docker/Dockerfile.dj +++ b/scripts/docker/Dockerfile.dj @@ -18,7 +18,7 @@ RUN apk add -U !pyc \ py3-magic \ vips-jxl vips-heif vips-poppler vips-magick \ py3-numpy fftw libsndfile \ - vamp-sdk vamp-sdk-libs \ + vamp-sdk vamp-sdk-libs keyfinder-cli \ libraw py3-numpy cython \ && apk add -t .bd \ bash wget gcc g++ make cmake patchelf \