Musixmatch API TrackSearch Функция

1

Я пытаюсь использовать функцию Musixmatch TrackSearch NPM, чтобы получить уникальный идентификатор TrackID, который затем можно использовать в конечной точке Track.lyrics. Однако, когда я передаю определенные названия песен/исполнителей, набор результатов не включает в себя правильные совпадения, даже если я расширяю поиск, чтобы включить много результатов.

Пожалуйста, смотрите мой код ниже:

const music = require('musicmatch')({ apikey: "MY_API KEY" });

music.trackSearch({ q: "Drake - God Plan", page: 1, page_size: 3 })
  .then(function (data) {
    console.log(data.message.body.track_list);

  }).catch(function (err) {
    console.log(err);
  })

Эта функция возвращает две песни под названием "Empire" Рика Росса и Дрейка и одну караоке-версию песни "God Plan", но ничего похожего на оригинальную версию (которая в настоящее время № 3 на Billboard Hot 100). Мне трудно поверить, что в базе данных Musixmatch отсутствует "План Бога", поэтому я, должно быть, делаю что-то не так!

Теги:
npm
music

1 ответ

0

Корень проблемы заключается в том, что вы используете параметр q поиска. В документах q выполняет поиск:

в названиях треков, исполнителях, текстах песен

поэтому, если ваш поиск q: "drake" вы вернетесь к любым результатам, которые включают Drake в Тексты Название, Художники, ИЛИ, которые больше, чем вы ищете.

Есть несколько вещей, которые вы, вероятно, можете сделать, чтобы обойти это, но на высоком уровне проще всего использовать f_artist_id поиска f_artist_id и использовать его для указания artist_id (для этого может потребоваться отдельная функция, которая находит artist_id). НАПРИМЕР:

music.trackSearch({ q: "Drake - God Plan", f_artist_id: "<drake artist id>"...

Другой вариант - установить значение page_size действительно высоким и фильтровать результаты, но это кажется... громоздким.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню