|
@@ -1,8 +1,7 @@
|
|
from lib import debug
|
|
from lib import debug
|
|
|
|
|
|
-
|
|
|
|
def get_playlist(youtube, title):
|
|
def get_playlist(youtube, title):
|
|
- """Return users's playlist by title (None if not found)"""
|
|
|
|
|
|
+ """Return users's playlist ID by title (None if not found)"""
|
|
playlists = youtube.playlists()
|
|
playlists = youtube.playlists()
|
|
request = playlists.list(mine=True, part='id,snippet')
|
|
request = playlists.list(mine=True, part='id,snippet')
|
|
while request:
|
|
while request:
|
|
@@ -13,7 +12,8 @@ def get_playlist(youtube, title):
|
|
request = playlists.list_next(request, results)
|
|
request = playlists.list_next(request, results)
|
|
|
|
|
|
def create_playlist(youtube, title, privacy):
|
|
def create_playlist(youtube, title, privacy):
|
|
- """Create a playlist by title"""
|
|
|
|
|
|
+ """Create a playlist by title and return its ID"""
|
|
|
|
+ debug("Creating playlist: {0}".format(title))
|
|
response = youtube.playlists().insert(part="snippet,status", body={
|
|
response = youtube.playlists().insert(part="snippet,status", body={
|
|
"snippet": {
|
|
"snippet": {
|
|
"title": title,
|
|
"title": title,
|
|
@@ -22,24 +22,23 @@ def create_playlist(youtube, title, privacy):
|
|
"privacyStatus": privacy,
|
|
"privacyStatus": privacy,
|
|
}
|
|
}
|
|
}).execute()
|
|
}).execute()
|
|
- return response.get('id', None)
|
|
|
|
|
|
+ return response.get('id')
|
|
|
|
|
|
-def add_video_to_playlist(youtube, playlist_id, video_id):
|
|
|
|
- """Add video to playlist (by identifier)."""
|
|
|
|
|
|
+def add_video_to_existing_playlist(youtube, playlist_id, video_id):
|
|
|
|
+ """Add video to playlist (by identifier) and return the playlist ID."""
|
|
return youtube.playlistItems().insert(part='snippet', body={
|
|
return youtube.playlistItems().insert(part='snippet', body={
|
|
"snippet": {
|
|
"snippet": {
|
|
"playlistId": playlist_id,
|
|
"playlistId": playlist_id,
|
|
"resourceId": {
|
|
"resourceId": {
|
|
"kind": "youtube#video",
|
|
"kind": "youtube#video",
|
|
- "videoId": video_id
|
|
|
|
|
|
+ "videoId": video_id,
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}).execute()
|
|
}).execute()
|
|
- return playlist_id
|
|
|
|
|
|
|
|
-def add_to_playlist(youtube, video_id, title, privacy="public"):
|
|
|
|
- """Add video to playlist (by title)."""
|
|
|
|
|
|
+def add_video_to_playlist(youtube, video_id, title, privacy="public"):
|
|
|
|
+ """Add video to playlist (by title) and return the full response."""
|
|
playlist_id = get_playlist(youtube, title) or \
|
|
playlist_id = get_playlist(youtube, title) or \
|
|
create_playlist(youtube, title, privacy)
|
|
create_playlist(youtube, title, privacy)
|
|
if playlist_id:
|
|
if playlist_id:
|
|
- return add_video_to_playlist(youtube, playlist_id, video_id)
|
|
|
|
|
|
+ return add_video_to_existing_playlist(youtube, playlist_id, video_id)
|