# see : https://console.cloud.google.com/apis/credentials import googleapiclient.discovery import json channel_id = "************" api_key = "*******" youtube = googleapiclient.discovery.build("youtube", "v3", developerKey = "AIzaSyBRYFmzq1rlEwAp5P8VdpQmnJmZC5h9gRE") def getItemsByKey(playlist_id): request = youtube.playlistItems().list( part="snippet", playlistId=playlist_id ) results = request.execute() entries = [] for result in results['items']: entries.append({ 'title': result['snippet']['title'], 'videoId': result['snippet']['resourceId']['videoId'] }) return entries request = youtube.playlists().list( part = "snippet", channelId = channel_id, maxResults = 50 ) response = request.execute() playlists_count = 0 playlists = [] while request is not None: response = request.execute() for item in response['items']: print("Playlist : ", item['snippet']['localized']['title']) playlist = { 'id': item['id'], 'title': item['snippet']['localized']['title'], 'items': getItemsByKey(item['id']) } playlists.append(playlist) playlists_count += 1 request = youtube.playlists().list_next(request, response) with open("my_playlists.json", "w") as write_file: json.dump(playlists, write_file, indent=4) print("Count : ", playlists_count)