implement discogs-search

pull/1/head
Yash Agarwal 2017-06-16 11:52:27 +05:30
parent 0795e9fdba
commit 64dca80273
2 changed files with 59 additions and 15 deletions

2
.gitignore vendored
View File

@ -5,3 +5,5 @@
!.vscode/
*.mp3
aidmatch.py
data.json
.idea/*

View File

@ -1,10 +1,13 @@
import sys
import os
import mutagen
from os.path import basename
import acoustid
import discogs_client as discogs
from string import digits
import musicbrainzngs as m
from mutagen.id3 import ID3, APIC, _util
from mutagen.mp3 import EasyMP3
from bs4 import BeautifulSoup
def improve_song_names(songs):
@ -15,19 +18,18 @@ def improve_song_names(songs):
improved_names = []
for song in songs:
searchText = song[0:-4]
remove_digits = searchText.maketrans('', '', digits)
searchText = searchText.translate(remove_digits)
# remove_digits = searchText.maketrans('', '', digits)
# searchText = searchText.translate(remove_digits)
for word in song[0:-4].split(' '):
if word.lower() in blacklistWords:
searchText = searchText.replace(word, '')
improved_names.append(searchText)
improved_names.append(searchText.strip())
return improved_names
def get_metadata_acoustid(song):
API_KEY = 'GkQibmzT1u'
try:
results = acoustid.match(API_KEY, song)
@ -49,16 +51,32 @@ def get_metadata_acoustid(song):
first = False
else:
print(result)
score, rid, title, artist = result[0], result[1], result[2], result[3]
valid = True
if first is True:
print("No Data found for " + song + " .... Skipping it")
valid = False
score, rid, title, artist = None, None, None, None
return valid, score, rid, title, artist
def get_metadata_musicbrainz(song):
return
def get_metadata_musicbrainz(rid, artist, title):
d = m.set_useragent(
"MetadataRepair",
"0.1",
"https://github.com/yash2696/python-musicbrainzngs/",
)
result = m.search_recordings(
artist=artist, recording=title, rid=rid, limit=5)
print(result)
def add_metadata(files):
def add_metadata(file_name, rid, title, artist):
return
@ -70,14 +88,17 @@ def list_files():
def get_metadata_discogs(song_name):
d = discogs.Client('ExampleApplication/0.1',
user_token="mbNSnSrqdyJOKorCDBXjzzeYNhgulysWNJbwgBmk")
results = d.search(song_name, type="release")
first_result = results.page(1)[0]
# print(first_result)
title = first_result.title
print(dir(first_result.artists[0]))
# print(dir(first_result))
print(title)
print(first_result.artists[0].name)
print(first_result.images[0])
def main():
@ -87,13 +108,34 @@ def main():
# get_metadata_discogs(
# "Jonas Blue - By Your Side (Feat Raye)")
# files = improve_song_names(files)
for file in files:
print("-------------" + file + "------------------")
# get_metadata_discogs(
# "Maroon 5-Animals")
# valid, score, rid, title, artist = get_metadata_acoustid(
# "18. Justin Timberlake - CAN'T STOP THE FEELING!.mp3")
# print(valid)
# print(score)
# print(files)
# for file_name in files:
# print("-------------" + file_name + "------------------")
# print()
# valid, score, rid, title, artist = get_metadata_acoustid(file_name)
# if valid == True:
# get_metadata_musicbrainz(rid, artist, title)
# add_metadata(file_name, rid, title, artist)
# print()
# break
files = improve_song_names(files)
# print(files)
count = 0
for file_name in files:
print("-------------" + file_name + "------------------")
print()
get_metadata_acoustid(file)
get_metadata_discogs(file_name)
count += 1
if count > 5:
break
print()
print(files)
if __name__ == "__main__":