From 9fd85d48142e7953f4a210680e0eec9f81ff2ee9 Mon Sep 17 00:00:00 2001 From: "N0\\A" Date: Thu, 30 Oct 2025 11:53:52 +0100 Subject: [PATCH] . --- .gitignore | 5 +++++ musicdl/__main__.py | 4 ++++ musicdl/metadata.py | 6 ++++++ musicdl/musicbrainz.py | 12 +++++++++++- 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index a18bda9..fe35e0e 100644 --- a/.gitignore +++ b/.gitignore @@ -111,3 +111,8 @@ dmypy.json # Pyre type checker .pyre/ + + + + +result.json \ No newline at end of file diff --git a/musicdl/__main__.py b/musicdl/__main__.py index 6c21ac0..47b785b 100644 --- a/musicdl/__main__.py +++ b/musicdl/__main__.py @@ -1,8 +1,12 @@ from sys import argv +import musicdl.metadata as metadata def main(): url = argv[1] print(url) + result = metadata.search("How do you do (nightcore)") + import json + json.dump(result, open("result.json", "w"), indent=4) if __name__ == '__main__': main() \ No newline at end of file diff --git a/musicdl/metadata.py b/musicdl/metadata.py index e69de29..8959bdb 100644 --- a/musicdl/metadata.py +++ b/musicdl/metadata.py @@ -0,0 +1,6 @@ +import musicdl.musicbrainz as musicbrainz + +def search(title: str, artist: str = None, album: str = None): + results = musicbrainz.search(title, artist, album) + + return results \ No newline at end of file diff --git a/musicdl/musicbrainz.py b/musicdl/musicbrainz.py index fe0e6b1..75900a0 100644 --- a/musicdl/musicbrainz.py +++ b/musicdl/musicbrainz.py @@ -4,4 +4,14 @@ musicbrainzngs.set_useragent( "MusicDL", "0.1", "https://git.krzak.org/N0VA/musicdl" -) \ No newline at end of file +) + +def search(title: str, artist: str = None, album: str = None): + result = musicbrainzngs.search_recordings( + f"track:({title}) artist:({artist}) release:({album})", + 1 + )["recording-list"][0] + + result = musicbrainzngs.get_recording_by_id(result["id"]) + + return result \ No newline at end of file