get static method

Future<PlaylistPage> get(
  1. YoutubeHttpClient httpClient,
  2. String id
)

Implementation

static Future<PlaylistPage> get(
  YoutubeHttpClient httpClient,
  String id,
) async {
  final url = 'https://www.youtube.com/playlist?list=$id&hl=en&persist_hl=1';
  return retry(httpClient, () async {
    final raw = await httpClient.getString(url);
    final page = PlaylistPage.parse(raw, id);
    if (page.initialData.exists) {
      return page;
    }

    // Try to fetch using the browse API
    final data = await httpClient.sendPost('browse', {
      'browseId': page.initialData.browseId!,
    }, headers: {
      'x-youtube-client-name': '1',
      'x-goog-visitor-id': page.initialData.visitorData ?? '',
    });
    return PlaylistPage.id(
        id, _InitialData(data), page.initialData.visitorData);
  });
}