getSongRelated method
Gets related content for a song. Equivalent to the content shown in the "Related" tab of the watch panel.
browseId
Therelated
key in the WatchMixin.getWatchPlaylist response.
Example:
[
{
"title": "You might also like",
"contents": [
{
"title": "High And Dry",
"videoId": "7fv84nPfTH0",
"artists": [
{
"name": "Radiohead",
"id": "UCr_iyUANcn9OX_yy9piYoLw"
}
],
"thumbnails": [
{
"url": "https://lh3.googleusercontent.com/TWWT47cHLv3yAugk4h9eOzQ46FHmXc_g-KmBVy2d4sbg_F-Gv6xrPglztRVzp8D_l-yzOnvh-QToM8s=w60-h60-l90-rj",
"width": 60,
"height": 60
}
],
"isExplicit": false,
"album": {
"name": "The Bends",
"id": "MPREb_xsmDKhqhQrG"
}
}
]
},
{
"title": "Recommended playlists",
"contents": [
{
"title": "'90s Alternative Rock Hits",
"playlistId": "RDCLAK5uy_m_h-nx7OCFaq9AlyXv78lG0AuloqW_NUA",
"thumbnails": [...],
"description": "Playlist • YouTube Music"
}
]
},
{
"title": "Similar artists",
"contents": [
{
"title": "Noel Gallagher",
"browseId": "UCu7yYcX_wIZgG9azR3PqrxA",
"subscribers": "302K",
"thumbnails": [...]
}
]
},
{
"title": "Oasis",
"contents": [
{
"title": "Shakermaker",
"year": "2014",
"browseId": "MPREb_WNGQWp5czjD",
"thumbnails": [...]
}
]
},
{
"title": "About the artist",
"contents": "Oasis were a rock band consisting of Liam Gallagher, Paul ... (full description shortened for documentation)"
}
]
Implementation
Future<List> getSongRelated(String browseId) async {
if (browseId.isEmpty) throw Exception('Invalid browseId provided.');
final response = await sendRequest('browse', {'browseId': browseId});
final sections = nav(response, ['contents', ...SECTION_LIST]);
return parseMixedContent(sections as List<JsonMap>);
}