61 lines
1.7 KiB
Python
61 lines
1.7 KiB
Python
import musicbrainzngs as m
|
|
import sys
|
|
from mutagen.id3 import ID3
|
|
from mutagen import File
|
|
import os
|
|
import mutagen
|
|
from os.path import basename
|
|
import spotipy
|
|
|
|
def improve_song_name(song):
|
|
return song
|
|
|
|
|
|
def get_metadata(song):
|
|
spotify = spotipy.Spotify()
|
|
results = spotify.search(song_name, limit=1)
|
|
|
|
results = results['tracks']['items'][0] # Find top result
|
|
album = results['album']['name'] # Parse json dictionary
|
|
artist = results['album']['artists'][0]['name']
|
|
song_title = results['name']
|
|
album_art = results['album']['images'][0]['url']
|
|
|
|
return artist, album, song_title, album_art
|
|
|
|
def add_metadata(files):
|
|
# tags = File("/home/yash/Desktop/music-tagger/sample_songs/02. DJ Snake - Let Me Love You (Feat. Justin Bieber).mp3")
|
|
# print(tags)
|
|
for file in files:
|
|
print(file)
|
|
tags = File(file)
|
|
song_name = basename(file[:-4])
|
|
song_name = improve_song_name(song_name)
|
|
|
|
title, artist, album, cover_art = get_metadata(song_name)
|
|
|
|
|
|
def list_files():
|
|
files = []
|
|
return [f for f in os.listdir('.') if f.endswith('.mp3')]
|
|
|
|
|
|
def main():
|
|
m.set_useragent(
|
|
"RepairMusicMetadata", "0.1", "https://yashagarwal.me")
|
|
|
|
files = list_files()
|
|
get_metadata("36. Galantis - No Money")
|
|
# add_metadata(files)
|
|
# result = m.search_releases("36. Galantis - No Money")
|
|
# print(result)
|
|
# for rel in result['release-list']:
|
|
# print("{}, by {}".format(rel['title'], rel["artist-credit-phrase"]))
|
|
# if 'date' in rel:
|
|
# print("Released {} ({})".format(rel['date'], rel['status']))
|
|
# print("MusicBrainz ID: {}".format(rel['id']))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|