import csv import sys from youtube import config from youtube import api # @todo: look up playlist_id based on a channel_id given as a CLI arg # https://developers.google.com/youtube/v3/docs/channels/list # part: "id,contentDetails,snippet" # id: CHANNEL_ID_HERE playlist_id = 'UUvPewRiNhsk_8_Xm4wfvHkA' page_wait_time = 0.0004 data_api = config.api_mapping.youtube_data list_playlist_items = api.paginate(data_api.playlistItems().list, page_wait_time) page_num = 1 columns = ['video_id', 'title', 'description', 'published_at', 'status'] csv_path = 'list_channel_uploads-{}.csv'.format(playlist_id) with open(csv_path, 'w', newline='') as csv_out: csv_writer = csv.writer(csv_out) csv_writer.writerow(columns) items_results = list_playlist_items( part='snippet,contentDetails,status', maxResults=50, playlistId=playlist_id) for items_result in items_results: print('page num: {}'.format(page_num)) page_num += 1 for item in items_result.get('items'): snippet = item.get('snippet') row = [item.get('contentDetails').get('videoId'), snippet.get('title'), snippet.get('description'), snippet.get('publishedAt'), item.get('status').get('privacyStatus')] csv_writer.writerow(row)