I'm trying to add a list of video IDs stored in a .csv file to a playlist using the youtube-api.
I have got as far as adding a single video, but I am struggling to import a list of video IDs stored in a CSV file.
So within this snippet I would like to replace the video ID with a link to a CSV file:
def add_video_to_playlist(youtube, videoID, playlistID): add_video_request = youtube.playlistItems().insert( part = "snippet", body = {'snippet': {'playlistId': 'PLpB9AHGzZKOugx13Kwkj47mro_PftxSE9','resourceId': {'kind': 'youtube#video','videoId': 'tcJ4eVVK640'`
This is the full code as far as I have got:
import httplib2import osimport sysimport csvfrom apiclient.discovery import buildfrom apiclient.errors import HttpErrorfrom oauth2client.client import flow_from_clientsecretsfrom oauth2client.file import Storagefrom oauth2client.tools import argparser, run# The CLIENT_SECRETS_FILE variable specifies the name of a file# that containsthe OAuth 2.0 information for this application,# including its client_id and client_secret. You can acquire# an OAuth 2.0 client ID and client secret from the Google# Cloud Console at https://cloud.google.com/console.## Please ensure that you have enabled the# YouTube Data API for your project.## For more information about using OAuth2 to# access the YouTube Data API, see:# https://developers.google.com/youtube/v3/guides/authentication## For more information about the client_secrets.json# file format, see:# https://developers.google.com/api-client-library/python/guide/aaa_client_secrets#CLIENT_ID = ''CLIENT_SECRETS_FILE = ""# This variable defines a message to display if the CLIENT_SECRETS_FILE is# missing.MISSING_CLIENT_SECRETS_MESSAGE = """WARNING: Please configure OAuth 2.0To make this sample run you will need to populate the client_secrets.json filefound at:%swith information from the Cloud Consolehttps://cloud.google.com/consoleFor more information about the client_secrets.json file format, please visit:https://developers.google.com/api-client-library/python/guide/aaa_client_secrets""" % os.path.abspath(os.path.join(os.path.dirname(__file__), CLIENT_SECRETS_FILE))# This OAuth 2.0 access scope allows for full read/write access to the# authenticated user's account.YOUTUBE_SCOPE = "https://www.googleapis.com/auth/youtube"YOUTUBE_API_SERVICE_NAME = "youtube"YOUTUBE_API_VERSION = "v3"def get_authenticated_service(): flow = flow_from_clientsecrets(CLIENT_SECRETS_FILE, scope=YOUTUBE_SCOPE, message=MISSING_CLIENT_SECRETS_MESSAGE) storage = Storage("%s-oauth2.json" % sys.argv[0]) credentials = storage.get() if credentials is None or credentials.invalid: credentials = run(flow, storage) return build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION, http=credentials.authorize(httplib2.Http()))def add_video_to_playlist(youtube, videoID, playlistID): add_video_request = youtube.playlistItems().insert( part = "snippet", body = {'snippet': {'playlistId': 'PlayistId','resourceId': {'kind': 'youtube#video',' videoId': 'VideoId' } #'position': 0 } } ).execute()if __name__ == '__main__': youtube = get_authenticated_service() add_video_to_playlist(youtube, "yszl2oxi8IY", "PL2JW1S4IMwYubm06iDKfDsmWVB- J8funQ")