You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Made a slight modif in my local base to avoid adding a random matching track when there is no track matching the exact duration. It's mostly the case with remixes and extended versions that are not (yet) available on Spotify. I personally prefer skipping these tracks instead of adding a random version of them:
def best_of_multiple_matches(source_track, found_tracks):
counter = 1
duration_matches = [
0,
]
for track in found_tracks:
print("\t\t\t[+] Match {}: {}".format(counter, track["id"]))
if do_durations_match(source_track["duration_ms"], track["duration_ms"]):
duration_matches[0] += 1
duration_matches.append(track)
counter += 1
if duration_matches[0] == 1:
best_track = duration_matches.pop()["id"]
print(
"\t\t\t[+] Only one exact match with matching duration, going with that one: {}".format(
best_track
)
)
return best_track
else:
if duration_matches[0] == 0:
print("No track with matching duration, ignoring track !")
else:
# TODO: Popularity does not always yield the correct result
best_track = most_popular_track(found_tracks)
print(
"\t\t\t[+] Multiple exact matches with matching durations, going with the most popular one: {}".format(
best_track
)
)
return best_track
The text was updated successfully, but these errors were encountered:
I changed the code to just return the first match if there is no exact match. I was running into the issue where usually the first match was correct but it was skipping it because spotify didnt have an extended version or the time was different by more than one second. This has yielded the best results for me.
`def best_of_multiple_matches(source_track, found_tracks):
counter = 1
duration_matches = [0, ]
for track in found_tracks:
print("\t\t\t[+] Match {}: {}".format(counter, track["id"]))
if do_durations_match(source_track["duration_ms"], track["duration_ms"]):
duration_matches[0] += 1
duration_matches.append(track)
counter += 1
if duration_matches[0] == 1:
best_track = duration_matches.pop()["id"]
print("\t\t\t[+] Only one exact match with matching duration, going with that one: {}".format(best_track))
return best_track
# Modified: Return the first match instead of the most popular
best_track = found_tracks[0]["id"]
print("\t\t\t[+] No exact match with duration, going with the first match: {}".format(best_track))
return best_track`
Hi,
Made a slight modif in my local base to avoid adding a random matching track when there is no track matching the exact duration. It's mostly the case with remixes and extended versions that are not (yet) available on Spotify. I personally prefer skipping these tracks instead of adding a random version of them:
The text was updated successfully, but these errors were encountered: