PlaylistItemExportResponse exportPlaylistItems(String playlistId, Optional<String> pageToken)
      throws IOException, InvalidTokenException, PermissionDeniedException {
    Map<String, String> params = new LinkedHashMap<>();
    params.put(PLAYLIST_ID_KEY, playlistId);
    params.put(PAGE_SIZE_KEY, String.valueOf(PLAYLIST_ITEM_PAGE_SIZE));
    if (pageToken.isPresent()) {
      params.put(TOKEN_KEY, pageToken.get());
    }
    return makeGetRequest(
        BASE_URL + "playlists:exportPlaylistItems", Optional.of(params),
        PlaylistItemExportResponse.class);
  }
GoogleMusicHttpApi makes HTTP requests to read and write to the public Google Music's "Music
Library" APIs, following its documentation at
https://developers.google.com/youtube/mediaconnect.

<p>Note that this is the lowest level of Google Music interaction - that is, you probably don't
want to use this class and are better off using something like a bit higher level like the Google
Music DTP Exporter and Importer instead.
extensions/data-transfer/portability-data-transfer-google/src/main/java/org/datatransferproject/datatransfer/google/music/GoogleMusicHttpApi.java