Log video titles

This commit is contained in:
Maks Snegov 2024-02-02 11:50:35 -08:00
parent 6f4cdc66c7
commit 4f6ff53b6f

19
main.py
View File

@ -13,6 +13,15 @@ from googleapiclient.errors import HttpError
_playlists = {} _playlists = {}
def _truncate_title(title: str, length: int = 30) -> str:
if length <= 0:
return ""
if length <= 3:
return title[:length]
if len(title) <= length:
return title
return title[:length-3] + (title[length:] and '...')
def get_yt_creds(): def get_yt_creds():
""" Get YouTube API credentials """ """ Get YouTube API credentials """
creds = None creds = None
@ -94,6 +103,7 @@ def get_videos(yt_api, playlist_id):
def add_video_to_playlist(yt_api, video, playlist_id) -> bool: def add_video_to_playlist(yt_api, video, playlist_id) -> bool:
playlist_name = get_playlist_name(playlist_id) playlist_name = get_playlist_name(playlist_id)
video_id = video['snippet']['resourceId']['videoId'] video_id = video['snippet']['resourceId']['videoId']
video_title = _truncate_title(video['snippet']['title'])
try: try:
yt_api.playlistItems().insert( yt_api.playlistItems().insert(
part='snippet', part='snippet',
@ -107,24 +117,25 @@ def add_video_to_playlist(yt_api, video, playlist_id) -> bool:
} }
} }
).execute() ).execute()
print(f'Added video {video_id} to playlist {playlist_name}') print(f"Added video '{video_title}' [{video_id}] to playlist {playlist_name}")
return True return True
except HttpError as e: except HttpError as e:
print(f'Error adding video {video_id} to playlist {playlist_name}: {e}') print(f"Error adding video '{video_title}' [{video_id}] to playlist {playlist_name}: {e}")
return False return False
def remove_video_from_playlist(yt_api, video, playlist_id) -> bool: def remove_video_from_playlist(yt_api, video, playlist_id) -> bool:
playlist_name = get_playlist_name(playlist_id) playlist_name = get_playlist_name(playlist_id)
video_id = video['snippet']['resourceId']['videoId'] video_id = video['snippet']['resourceId']['videoId']
video_title = _truncate_title(video['snippet']['title'])
try: try:
yt_api.playlistItems().delete( yt_api.playlistItems().delete(
id=video['id'] id=video['id']
).execute() ).execute()
print(f'Removed video {video_id} from playlist {playlist_name}') print(f"Removed video '{video_title}' [{video_id}] from playlist {playlist_name}")
return True return True
except HttpError as e: except HttpError as e:
print(f'Error removing video {video_id} from playlist {playlist_name}: {e}') print(f"Error removing video '{video_title}' [{video_id}] from playlist {playlist_name}: {e}")
return False return False