guzzleHttpAdapter = new GuzzleHttpAdapter(new Client); $this->musicBrainz = new MusicBrainz($this->guzzleHttpAdapter); } public function test() { $recordingFilter = new RecordingFilter; $recordingFilter->addArtistNameWithoutAccents(new Name('Ella Fitzgerald')); $recordingFilter->addRecordingNameWithoutAccents(new Name('Summertime')); $pageFilter = new PageFilter(0, 10); $trackList = $this->musicBrainz->api()->search()->recording($recordingFilter, $pageFilter); dd($trackList[0]); } public function get_track_metadata(Request $request) { $title = $request->title; $album = $request->album; $artist = $request->artist; $length = $request->length; $recordingFilter = new RecordingFilter; if (!empty($title)) { $recordingFilter->addRecordingNameWithoutAccents(new Name($title)); } if (!empty($album)) { $recordingFilter->addReleaseName(new Name($album)); } if (!empty($artist)) { $recordingFilter->addArtistNameWithoutAccents(new Name($artist)); } if (!empty($length)) { $recordingFilter->addLength(new Length($length)); } $pageFilter = new PageFilter(0, 10); $trackList = $this->musicBrainz->api()->search()->recording($recordingFilter, $pageFilter); //return json_encode(serialize($trackList)); $response = []; foreach ($trackList as $key => $track) { $recording = $track->getRecording(); $response[] = [ 'title' => (string) $recording->getTitle(), 'artist' => (string) $recording->getArtistCredits()[0]->getName(), 'release' => (string) $recording->getReleases()[0]->getTitle(), 'length' => (string) $recording->getLength() ]; } return response()->json($response); } }