def response_media_items_by_filter(request_body: dict): try: response_search = service.mediaItems().search( body=request_body).execute() lstMediaItems = response_search.get('mediaItems') nextPageToken = response_search.get('nextPageToken') while nextPageToken: request_body['pageToken'] = nextPageToken response_search = service.mediaItems().search( body=request_body).execute() if not response_search.get('mediaItem') is None: lstMediaItems.extend(response_search.get('mediaItems')) nextPageToken = response_search.get('nextPageToken') else: nextPageToken = '' return lstMediaItems except Exception as e: print(e) return None
from pprint import pprint from init_photo_service import service import pandas as pd """ search method (by album id) """ response_albums_list = service.albums().list().execute() albums_list = response_albums_list.get('albums') album_id = next(filter(lambda x: "Teste Frame" in x['title'], albums_list))['id'] request_body = {'albumId': album_id, 'pageSize': 25} response_search = service.mediaItems().search(body=request_body).execute() lstMediaItems = response_search.get('mediaItems') nextPageToken = response_search.get('nextPageToken') while nextPageToken: request_body['pageToken'] = nextPageToken response_search = service.mediaItems().search(body=request_body).execute() lstMediaItems.extend(response_search.get('mediaItems')) nextPageToken = response_search.get('nextPageToken') df_search_result = pd.DataFrame(lstMediaItems) print(df_search_result) def response_media_items_by_filter(request_body: dict):
from pprint import pprint from init_photo_service import service import pandas as pd response = service.mediaItems().list(pageSize=25).execute() lst_medias = response.get('mediaItems') nextPageToken = response.get('nextPageToken') while nextPageToken: response = service.mediaItems().list( pageSize=25, pageToken=nextPageToken ).execute() lst_medias.extend(response.get('mediaItems')) nextPageToken = response.get('nextPageToken') # on df_media_items we get all the photos available at account df_media_items = pd.DataFrame(lst_medias) """ batchGet method """ media_ids = df_media_items['id'][4922:4923].to_list() response = service.mediaItems().batchGet(mediaItemIds=media_ids).execute() print(pd.DataFrame(response.get('mediaItemResults'))['mediaItem'].apply(pd.Series))
from pprint import pprint from init_photo_service import service import pandas as pd response = service.mediaItems().list(pageSize=25).execute() lst_medias = response.get('mediaItems') nextPageToken = response.get('nextPageToken') while nextPageToken: response = service.mediaItems().list(pageSize=25, pageToken=nextPageToken).execute() lst_medias.extend(response.get('mediaItems')) nextPageToken = response.get('nextPageToken') # on df_media_items we get all the photos available at account df_media_items = pd.DataFrame(lst_medias) """ get method """ media_id = df_media_items['id'][4923] # only media ID response = service.mediaItems().get( mediaItemId=media_id).execute() # complete media item print(media_id) print(response)
lstAlbums = response.get('albums') nextPageToken = response.get('nextPageToken') while nextPageToken: response = service.albums.list(pageSize=50, excludeNonAppCreatedData=False, pageToken=nextPageToken) lstAlbums.append(response.get('albums')) nextPageToken = response.get('nextPageToken') df_albums = pd.DataFrame(lstAlbums) album_id = df_albums['id'][2] response = service.mediaItems().list(pageSize=25).execute() lst_medias = response.get('mediaItems') nextPageToken = response.get('nextPageToken') while nextPageToken: response = service.mediaItems().list(pageSize=25, pageToken=nextPageToken).execute() lst_medias.extend(response.get('mediaItems')) nextPageToken = response.get('nextPageToken') df_media_items = pd.DataFrame(lst_medias) media_items_ids = df_media_items['id'][:3].to_list() # only photos uploaded using API could be move
pd.set_option('expand_frame_repr', True) myAblums = service.albums().list().execute() myAblums_list = myAblums.get('albums') dfAlbums = pd.DataFrame(myAblums_list) Teste_Frame_album_id = dfAlbums[ dfAlbums['title'] == 'Teste Frame']['id'].to_string(index=False).strip() def download_file(url: str, destination_folder: str, file_name: str): response = requests.get(url) if response.status_code == 200: print('Downloading file {0}'.format(file_name)) with open(os.path.join(destination_folder, file_name), 'wb') as f: f.write(response.content) f.close() media_files = service.mediaItems().search(body={ 'albumId': Teste_Frame_album_id }).execute()['mediaItems'] destination_folder = r'/home/pi/Documents/Photos' for media_file in media_files: file_name = media_file['filename'] download_url = media_file['baseUrl'] + '=d' download_file(download_url, destination_folder, file_name) #home/pi/Documents/Photos
img = open(image_file, 'rb').read() response = requests.post(upload_url, data=img, headers=headers) print(response) # should be 200 print(response.content) # should be binário token to file request_body = { 'newMediaItems': [{ 'description': 'Portinari', 'simpleMediaItem': { 'uploadToken': response.content.decode('utf-8') } }] } upload_response = service.mediaItems().batchCreate(body=request_body).execute() print(upload_response) # should be all media item information message = upload_response.get('newMediaItemResults')[0].get('status') print(message) # should be sucess """ # Função para batch upload funcionando corretamente def upload_image(image_path, upload_file_name, token): headers = { 'Authorization': 'Bearer ' + token.token, 'Content-type': 'application/octet-stream', 'X-Goog-Upload-Protocol': 'raw', 'X-Goog-File-Name': upload_file_name } img = open(image_path, 'rb').read()