[project] name = "songtrace" version = "0.1.0" description = "Generate UltraStar/Melody Mania karaoke songs from a video and reference lyrics" requires-python = ">=3.11" license = "AGPL-3.0-or-later" dependencies = [ # yt-dlp declares no runtime deps of its own; the extras are what make # YouTube work. "default" pulls yt-dlp-ejs (JS challenge solving) and the # requests/urllib3 handlers, "deno" ships the JS runtime that executes it, # and "curl-cffi" provides the --impersonate targets. Without them YouTube # extraction degrades to HTTP 403 on the media URLs. "yt-dlp[default,curl-cffi,deno]", "demucs", "torch", "torchaudio", "torchcrepe", "librosa", "soundfile", "numpy", "pyphen", "num2words", "httpx", "fastapi", "uvicorn", "python-multipart", "pillow", ] [project.optional-dependencies] dev = ["pytest", "playwright"] [project.scripts] songtrace = "songtrace.cli:main" [build-system] requires = ["setuptools>=68"] build-backend = "setuptools.build_meta" [tool.setuptools.packages.find] where = ["src"] [tool.setuptools.package-data] songtrace = ["static/*", "static/fonts/*"] [tool.pytest.ini_options] testpaths = ["tests"]