youTubeService = $youTubeService; } /** * Get song's extra information * * Get a song's extra information. The response of this request is a superset of both corresponding * `album/{album}/info` and `artist/{artist}/info` requests, combined with the song's lyrics and related YouTube * videos, if applicable. This means you can (and should) cache this information somewhere ;) * * @responseFile responses/mediaInformation.song.show.json * * @return JsonResponse */ public function show(Song $song) { return response()->json([ 'lyrics' => $song->lyrics, 'album_info' => $this->mediaInformationService->getAlbumInformation($song->album), 'artist_info' => $this->mediaInformationService->getArtistInformation($song->artist), 'youtube' => $this->youTubeService->searchVideosRelatedToSong($song), ]); } }