in source/lambda/ingestion-youtube/util/video.py [0:0]
def process_response(youtube_response, video_search_params):
event_bus = get_service_client("events")
count = 1
comments = []
logger.debug(f"video search parameters {json.dumps(video_search_params)}")
search_query = f'{video_search_params.get("q", None)}#{video_search_params.get("channelId", None)}'
for index, item in enumerate(youtube_response["items"]):
logger.debug(f"Item is {item}")
comments.append(
{
"EventBusName": os.environ["EVENT_BUS_NAME"],
"Source": os.environ["VIDEO_NAMESPACE"],
"Detail": json.dumps(
{"VideoId": item["id"]["videoId"], "SearchQuery": search_query, "Title": item["snippet"]["title"]}
),
"DetailType": "Video",
}
)
logger.debug(f"Count is {count}")
# optimize the loop to perform put_events with every 10 items
if count == 10 or len(youtube_response["items"]) - index == 1:
service_response = event_bus.put_events(Entries=comments)
logger.debug(f"Put events response is {json.dumps(service_response)}")
failed_entry_count = service_response.get("FailedEntryCount", None)
if failed_entry_count > 0:
logger.error(f"Error in put events {json.dumps(service_response['Entries'])}")
count = 1
comments = []
else:
count = count + 1 # optimize the loop to perform put_events with every 10 items