async def METHOD_NAME(
    file: bytes, width: int, height: int, fps: int = 30, **_: Any
) -> ConvertedSticker:
    with tempfile.TemporaryDirectory(prefix="tgs_") as tmpdir:
        file_template = tmpdir + "/out_"
        try:
            await _run_lottieconverter(
                args=("-", file_template, "pngs", f"{width}x{height}", str(fps)),
                input_data=file,
            )
            first_frame_name = min(os.listdir(tmpdir))
            with open(f"{tmpdir}/{first_frame_name}", "rb") as first_frame_file:
                first_frame_data = first_frame_file.read()
            webm_data = await ffmpeg.convert_path(
                input_args=("-framerate", str(fps), "-pattern_type", "glob"),
                input_file=f"{file_template}*.png",
                output_args=("-c:v", "libvpx-vp9", "-pix_fmt", "yuva420p", "-f", "webm"),
                output_path_override="-",
                output_extension=None,
            )
            return ConvertedSticker("video/webm", webm_data, "image/png", first_frame_data)
        except ffmpeg.ConverterError as e:
            log.error(str(e))
    return ConvertedSticker("application/gzip", file)