def build_youtube_search_request()

in source/lambda/ingestion-youtube/util/video.py [0:0]


def build_youtube_search_request():
    """
    Building a query based on the following API - https://developers.google.com/youtube/v3/docs/search/list
    """
    video_search_params = {
        "part": "id,snippet",
        "type": "video",
        "maxResults": 50,
        "publishedAfter": (datetime.now() - timedelta(days=int(os.environ["VIDEO_SEARCH_INGESTION_WINDOW"]))).strftime(
            "%Y-%m-%dT%H:%M:%SZ"
        ),  # format required 1970-01-01T00:00:00Z
    }

    if os.environ.get("QUERY", None):
        q = os.environ["QUERY"].replace("|", "%7C")  # any use of | has to be url encoded
        video_search_params["q"] = q

    if os.environ.get("CHANNEL_ID", None):
        video_search_params["channelId"] = os.environ["CHANNEL_ID"]

    video_search_params["channelType"] = os.environ.get("CHANNEL_TYPE", "any")

    if os.environ.get("EVENT_TYPE", None):
        video_search_params["eventType"] = os.environ["EVENT_TYPE"]

    if os.environ.get("LOCATION", None):
        video_search_params["location"] = os.environ["LOCATION"]
        if os.environ.get("LOCATION_RADIUS", None):
            video_search_params["locationRadius"] = os.environ["LOCATION_RADIUS"]

    if os.environ.get("REGION_CODE", None):
        video_search_params["regionCode"] = os.environ["REGION_CODE"]

    if os.environ.get("RELEVANCE_LANGUAGE", None):
        video_search_params["relevanceLanguage"] = os.environ["RELEVANCE_LANGUAGE"]

    return video_search_params