Musixmatch API TrackSearch Функция - PullRequest
0 голосов
/ 11 июня 2018

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

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

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

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

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

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

1 Ответ

0 голосов
/ 11 июня 2018

Корень вашей проблемы в том, что вы используете параметр поиска q.Согласно документам , q ищет:

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

, поэтому, если ваш поиск q: "drake", выВы получите любые результаты, которые включают Drake в заголовке, Artists, OR Lyrics, что больше, чем вы ищете.

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

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

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

...