"""Stuff that has to do with videos."""
import sys

import ffmpeg

from discord_embed import settings


def video_resolution(path_to_video: str) -> tuple[int, int]:
    """Find video resolution.

    Args:
        path_to_video (str): Path to video file.

    Returns:
        tuple[int, int]: Returns height and width.
    """
    probe = ffmpeg.probe(path_to_video)
    video_stream = next((stream for stream in probe["streams"] if stream["codec_type"] == "video"), None)
    if video_stream is None:
        print("No video stream found", file=sys.stderr)
        sys.exit(1)

    width = int(video_stream["width"])
    height = int(video_stream["height"])

    return height, width


def make_thumbnail(path_video: str, file_filename: str) -> str:
    """Make thumbnail for Discord. This is a screenshot of the video.

    Args:
        path_video (str): Path where video file is stored.
        file_filename (str): File name for URL.

    Returns:
        str: Returns thumbnail filename.
    """
    (
        ffmpeg.input(path_video, ss="1")
        .output(f"{settings.upload_folder}/{file_filename}.jpg", vframes=1)
        .overwrite_output()
        .run()
    )
    # Return URL for thumbnail.
    return f"{settings.domain}/{file_filename}.jpg"