User Tools

Site Tools


youtube_playlist

# 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)

youtube_playlist.txt · Last modified: by ssm2017