読者です 読者をやめる 読者になる 読者になる

この曲、いいね

ちょっと、好きな感じの曲をメモしてます。(主に女性アーティスト)

YouTubeで作成出来るプレイリスト数の上限は1万件です。

YouTubeのプレイリストは、YouTubeAPIを使用して以下のような感じで簡単に自動で作成出来るのですが、試してみた所、プレイリストを1万件作成したらそれ以上作成出来なくなりました。

 

興味のある方への情報まで。

    
import httplib2
import os
import sys

from apiclient.discovery import build
from apiclient.errors import HttpError
from oauth2client.client import flow_from_clientsecrets
from oauth2client.file import Storage
from oauth2client.tools import argparser, run_flow

CLIENT_SECRETS_FILE = "client_secrets.json"

# missing.
MISSING_CLIENT_SECRETS_MESSAGE = """
WARNING: Please configure OAuth 2.0

To make this sample run you will need to populate the client_secrets.json file
found at:

   %s

with information from the Developers Console
https://console.developers.google.com/

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

# OAuth 2.0 access scope
YOUTUBE_READ_WRITE_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_READ_WRITE_SCOPE,
        message=MISSING_CLIENT_SECRETS_MESSAGE)

    #storage = Storage("%s-oauth2.json" % sys.argv[0])
    storage = Storage("client-oauth2.json")
    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_playlist(youtube, title, description):
    playlists_insert_response = youtube.playlists().insert(
        part="snippet,status",
        body={
            'snippet' : {
                'title' : title,
                'description' : description
            },
            'status' : {
                'privacyStatus' : 'public'
            }
        }
    ).execute()
    
    return playlists_insert_response["id"]


def add_video_to_playlist(youtube,videoID,playlistID, position):
    add_video_request=youtube.playlistItems().insert(
    part="snippet",
    body={
        'snippet': {
            'playlistId': playlistID, 
            'resourceId': {
                'kind': 'youtube#video',
                'videoId': videoID
                },
            'position': position
            }
        }
    ).execute()

if __name__ == '__main__':


        # youtubeID 取得
        youtube = get_authenticated_service()

        # プレイリスト作成
        playlistID = add_playlist(youtube, "ミックスリスト", "ミックスリスト説明")
        
        # プレイリストにビデオ追加(positionはプレイリスト内のビデオの挿入位置)
        add_video_to_playlist(youtube, videoID, playlistID, position)