searchForTrack method

  1. @override
Future<List<YoutubeMusicResult>> searchForTrack(
  1. String query, [
  2. int itemCount = 5
])
override

Searches for tracks.

Implementation

@override
Future<List<YoutubeMusicResult>> searchForTrack(String query, [int itemCount = 5]) async {
  var results = await _ytMusicEngine.searchSongs(query);

  var returnList = <YoutubeMusicResult>[];

  for (var result in results) {
    var dataManifest = await _ytExplode.videos.streamsClient.getManifest(result.videoId);
    var dlUrl = dataManifest.audioOnly.withHighestBitrate().url.toString();

    var highestResThumbnail =
        result.thumbnails.reduce((a, b) => a.width * a.height > b.width * b.height ? a : b);

    returnList.add(
      YoutubeMusicResult(
        title: result.name,
        artists: [result.artist.name],
        album: result.album?.name,
        srcUrl: 'https://music.youtube.com/watch?v=${result.videoId}',
        dlUrl: dlUrl,
        sDuration: result.duration!,
        source: Source.youtubeMusic,
        artUrl: highestResThumbnail.url,
      ),
    );
  }

  return returnList;
}