async def videos_summary(video_id: Union[str, None] = None,
                         channel_id: Union[str, None] = None,
                         username: Union[str, None] = None,
                         url: Union[str, None] = None,
                         open_summary: Union[bool, None] = False):
    """
    - **video_id**: youtube video ID
    - **channel_id**: youtube channel Id
    - **username**: youtube username
    - **url**: youtube url
    """

    videos = {}
    if video_id is not None:
        videos = get_video_detail(video_id)
    if channel_id is not None:
        videos = get_channel_videos(channel_id)
    if username is not None:
        videos = get_user_videos(username)
    if url is not None:
        (value_type, value) = get_youtube_value(url)
        if value_type == "username":
            videos = get_user_videos(value)
        if value_type == "video_id":
            videos = get_video_detail(value)

    return gen_summary_for_videos(videos, open_summary)

    - **video_id**: youtube video ID
    - **channel_id**: youtube channel Id
    - **username**: youtube username
    - **url**: youtube url
    
PoC/example_services/demo_service1/main.py