Ë
    uPêjÃÞ  ã            !       ó
  — U d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZm	Z	m
Z
 d dlmZ d dlZd dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlm Z m!Z! d dl"m#Z#m$Z$m%Z% d dl&m'Z' d dl(m)Z)m*Z* d dl+m,Z,  e«       Z-ee.d<   e*	 	 	 	 	 	 	 	 	 	 dOde/de/dz  de!dz  de/dz  de/dz  de/dz  de0e/e1f   dz  de0e/e1f   dz  de0e/e1f   dz  de%fd„«       Z2e
	 	 	 	 	 	 	 	 	 	 dOde/de/dz  de!dz  de/dz  de/dz  de/dz  de3d e/dz  de0e/e1f   dz  de0e/e1f   dz  de0e/e1f   dz  d!e	d"   d#e1dee1e1e%f   fd$„«       Z4e
	 	 	 	 	 	 	 	 	 	 dOd%d&œde/de/dz  de!dz  de/dz  de/dz  de/dz  de3d e/dz  de0e/e1f   dz  de0e/e1f   dz  de0e/e1f   dz  d!e	d%   d#e1de%fd'„«       Z4e*	 	 	 	 	 	 	 	 	 	 dOde/de/dz  de!dz  de/dz  de/dz  de/dz  de0e/e1f   dz  de0e/e1f   dz  de0e/e1f   dz  de%ee1e1e%f   z  fd(„«       Z4e*	 	 	 	 	 	 dPd)e/de5dz  d e/dz  d*e/dz  de0e/e1f   dz  de0e/e1f   dz  de0e/e1f   dz  de6ee1e1e6f   z  fd+„«       Z7e*	 	 	 	 	 	 dPd)e/de5dz  d e/dz  d*e/dz  de0e/e1f   dz  de0e/e1f   dz  de0e/e1f   dz  de6fd,„«       Z8e*	 	 	 	 	 dQd)e/de/de0e/e1f   dz  de0e/e1f   dz  de0e/e1f   dz  de%fd-„«       Z9e
	 	 	 	 	 dQd)e/de/de3d e/dz  de0e/e1f   dz  de0e/e1f   dz  de0e/e1f   dz  d.e	d"   d#e1dee1e1e%f   fd/„«       Z:e
	 	 	 	 	 dQd%d0œd)e/de/de3d e/dz  de0e/e1f   dz  de0e/e1f   dz  de0e/e1f   dz  d.e	d%   d#e1de%fd1„«       Z:e*	 	 	 	 	 dQd)e/de/de0e/e1f   dz  de0e/e1f   dz  de0e/e1f   dz  de%ee1e1e%f   z  fd2„«       Z:e*	 	 	 	 	 	 	 	 	 dRd3e/dz  d4e3dz  d5e/dz  d6e/dz  de0e/e1f   dz  de0e/e1f   dz  de0e/e1f   dz  de;e%   fd7„«       Z<e
	 	 	 	 	 	 	 	 dSd3e/dz  d4e3dz  d5e/dz  de3d e/dz  de0e/e1f   dz  de0e/e1f   dz  de0e/e1f   dz  d8e	d"   d#e1dee1e1e;e%   f   fd9„«       Z=e
	 	 	 	 	 	 	 	 dSd%d:œd3e/dz  d4e3dz  d5e/dz  de3d e/dz  de0e/e1f   dz  de0e/e1f   dz  de0e/e1f   dz  d8e	d%   d#e1de;e%   fd;„«       Z=e*	 	 	 	 	 	 	 	 dSd3e/dz  d4e3dz  d5e/dz  de0e/e1f   dz  de0e/e1f   dz  de0e/e1f   dz  de;e%   ee1e1e;e%   f   z  fd<„«       Z=e*	 	 	 	 	 dQd)e/de0e/e1f   dz  de0e/e1f   dz  de0e/e1f   dz  de%f
d=„«       Z>e
	 	 	 	 	 dQd)e/de3d e/dz  de0e/e1f   dz  de0e/e1f   dz  de0e/e1f   dz  d>e	d"   d#e1dee1e1e%f   fd?„«       Z?e
	 	 	 	 	 dQd%d@œd)e/de3d e/dz  de0e/e1f   dz  de0e/e1f   dz  de0e/e1f   dz  d>e	d%   d#e1de%fdA„«       Z?e*	 	 	 	 	 dQd)e/de0e/e1f   dz  de0e/e1f   dz  de0e/e1f   dz  de%ee1e1e%f   z  f
dB„«       Z?e*	 	 	 	 	 dQdCe/dDe!de0e/e1f   dz  de0e/e1f   dz  de0e/e1f   dz  de#fdE„«       Z@e*	 	 	 	 	 dQdCe/dDe!de0e/e1f   dz  de0e/e1f   dz  de0e/e1f   dz  de#ee1e1e#f   z  fdF„«       ZAe*	 	 	 	 	 dQdGe/de0e/e1f   dz  de0e/e1f   dz  de0e/e1f   dz  de#f
dH„«       ZBe*	 	 	 	 	 dQdGe/de0e/e1f   dz  de0e/e1f   dz  de0e/e1f   dz  de#ee1e1e#f   z  f
dI„«       ZCe*	 	 	 	 	 dQddJœd)e/de/de0e/e1f   dz  de0e/e1f   dz  de0e/e1f   dz  dDedz  de%fdK„«       ZDe*	 	 	 	 	 dQddJœd)e/de/de0e/e1f   dz  de0e/e1f   dz  de0e/e1f   dz  dDedz  de%ee1e1e%f   z  fdL„«       ZEe*	 	 	 	 	 dQd)e/de/de/de0e/e1f   dz  de0e/e1f   dz  de0e/e1f   dz  de%fdM„«       ZFe*	 	 	 	 	 dQd)e/de/de/de0e/e1f   dz  de0e/e1f   dz  de0e/e1f   dz  de%ee1e1e%f   z  fdN„«       ZGy)Té    N)Ú	Coroutine)Úpartial)ÚFinalÚLiteralÚoverload)ÚFileContent)ÚDEFAULT_VIDEO_ENDPOINT_MODEL)Úrequest_timeout)Úget_llm_provider)ÚLogging)ÚBaseVideoConfig)ÚBaseLLMHTTPHandler)Úbase_llm_http_handler)ÚGenericLiteLLMParams)Ú	CallTypesÚ	FileTypes)ÚCharacterObjectÚ VideoCreateOptionalRequestParamsÚVideoObject)Údecode_video_id_with_provider)ÚProviderConfigManagerÚclient)ÚVideoGenerationRequestUtilsÚllm_http_handlerÚpromptÚmodelÚinput_referenceÚsecondsÚsizeÚuserÚextra_headersÚextra_queryÚ
extra_bodyÚreturnc              ‹   ó&  K  — t        «       }	 t        j                  «       }d|d<   |€4t        j                  |xs t
        |j                  dd«      ¬«      \  }}}}t        t        f| |||||||||	|
dœ|¤Ž}t        j                  «       }t        |j                  |«      }|j                  d|«      ƒ d{  –—† }t        j                  |«      r|ƒ d{  –—† }|S |}|S 7 Œ)7 Œ# t        $ r}t        j                  |||||¬«      ‚d}~ww xY w­w)a)  
    Asynchronously calls the `video_generation` function with the given arguments and keyword arguments.

    Parameters:
    - `prompt` (str): Text prompt that describes the video to generate
    - `model` (Optional[str]): The video generation model to use
    - `input_reference` (Optional[FileTypes]): Optional image reference that guides generation
    - `seconds` (Optional[str]): Clip duration in seconds
    - `size` (Optional[str]): Output resolution formatted as width x height
    - `user` (Optional[str]): A unique identifier representing your end-user
    - `timeout` (int): Request timeout in seconds
    - `custom_llm_provider` (Optional[str]): The LLM provider to use
    - `extra_headers` (Optional[Dict[str, Any]]): Additional headers
    - `extra_query` (Optional[Dict[str, Any]]): Additional query parameters
    - `extra_body` (Optional[Dict[str, Any]]): Additional body parameters
    - `kwargs` (dict): Additional keyword arguments

    Returns:
    - `response` (VideoResponse): The response returned by the `video_generation` function.
    TÚ
async_callNÚapi_base©r   r'   )r   r   r   r   r   r    ÚtimeoutÚcustom_llm_providerr!   r"   r#   ©r   r*   Úoriginal_exceptionÚcompletion_kwargsÚextra_kwargs)ÚlocalsÚasyncioÚget_event_loopÚlitellmr   r	   Úgetr   Úvideo_generationÚcontextvarsÚcopy_contextÚrunÚrun_in_executorÚiscoroutineÚ	ExceptionÚexception_type)r   r   r   r   r   r    r)   r*   r!   r"   r#   ÚkwargsÚ
local_varsÚloopÚ_ÚfuncÚctxÚfunc_with_contextÚinit_responseÚresponseÚes                        úX/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/videos/main.pyÚavideo_generationrG   "   sD  è ø€ ôJ ›€Jð,
Ü×,Ñ,Ó.ˆØ#ˆˆ|Ñð Ð&Ü+2×+CÑ+CØÒ;Ô;Ø#Ÿ™¨
°DÓ9ô,Ñ(ˆAÐ" A qô
 Üð
àØØ+ØØØØØ 3Ø'Ø#Ø!ñ
ð ñ
ˆô  !×-Ñ-Ó/ˆÜ#*¨3¯7©7°DÓ#9ÐØ%)×%9Ñ%9¸$Ð@QÓ%R×Rˆä×Ñ˜}Ô-Ø*×*ˆHð ˆð %ˆHàˆð  Søð +ùô
 ò 
Ü×$Ñ$ØØ 3Ø Ø(Øô
ð 	
ûð
üsY   ‚DŽB*C& Â8C"Â9C& ÃC$ÃC& ÃDÃC& Ã!DÃ"C& Ã$C& Ã&	DÃ/D	Ä	DÄDr)   r*   rG   Tr<   c                 ó   — y ©N© ©r   r   r   r   r   r    r)   r*   r!   r"   r#   rG   r<   s                rF   r4   r4   z   ó   € ð" ó    F)rG   c                 ó   — y rI   rJ   rK   s                rF   r4   r4   Ž   rL   rM   c                 ó¨  — t        «       }	 |j                  d«      }|j                  dd«      }|j                  dd«      du }|j                  dd«      }|�2t        |t        «      rt        j                  |«      }t        di |¤Ž}|S t        di |¤Ž}t        |xs t        |¬«      \  }}}}t        j                  |t        j                  |«      ¬	«      }|€t        d
|› �«      ‚|j!                  |«       t#        j$                  |«      }t#        j&                  |||¬«      }|j)                  |||t+        |«      d|i|¥|¬«       t,        j.                  j0                  |_        t5        j6                  || |||||||
|xs t8        ||j                  d«      ¬«      S # t:        $ r'}t        j<                  |xs t        ||||¬«      ‚d}~ww xY w)ú\
    Maps the https://api.openai.com/v1/videos endpoint.

    Currently supports OpenAI
    Úlitellm_logging_objÚlitellm_call_idNr&   FTÚmock_response)r   r*   ©r   Úproviderz&video generation is not supported for )r   Ú video_generation_provider_configÚ video_generation_optional_params©r<   r   r    Úoptional_paramsÚlitellm_paramsr*   r   )r   r   rV   Ú(video_generation_optional_request_paramsr*   rZ   Úlogging_objr!   r#   r)   Ú	_is_asyncr   r+   rJ   )r/   Úpopr3   Ú
isinstanceÚstrÚjsonÚloadsr   r   r   r	   r   Úget_provider_video_configr2   ÚLlmProvidersÚ
ValueErrorÚupdater   Ú-get_requested_video_generation_optional_paramÚ$get_optional_params_video_generationÚupdate_from_kwargsÚdictr   Úcreate_videoÚvalueÚ	call_typer   Úvideo_generation_handlerÚDEFAULT_REQUEST_TIMEOUTr:   r;   )r   r   r   r   r   r    r)   r*   r!   r"   r#   r<   r=   rQ   rR   r]   rS   rD   rZ   r?   rV   rW   Úvideo_generation_request_paramsrE   s                           rF   r4   r4   ¤   s  € ô, ›€JðR
Ø8>¿
¹
ÐCXÓ8YÐØ-3¯Z©ZÐ8IÈ4Ó-PˆØ!Ÿ:™: l°EÓ:¸dÐBˆ	ð Ÿ
™
 ?°DÓ9ˆØÐ$Ü˜-¬Ô-Ü $§
¡
¨=Ó 9�ä)Ñ:¨MÑ:ˆHØˆOô !5Ñ >°vÑ >ˆÜ+;ØÒ7Ô7Ø 3ô,
Ñ(ˆÐ" A qô DY×CrÑCrØÜ×)Ñ)Ð*=Ó>ôD
Ð(ð
 ,Ð3ÜÐEÐFYÐEZÐ[Ó\Ð\à×Ñ˜&Ô!ô (×UÑUÐV`Óað 	)ô
 8S×7wÑ7wØØ-MØ-Mô8
Ð'ð 	×.Ñ.ØØØÜ Ð!@ÓAà! ?ðà1ðð !4ð 	/ô 
	
ô )2×(>Ñ(>×(DÑ(DÐÔ%ô %×=Ñ=ØØØ-MØ5TØ 3Ø)Ø+Ø'Ø!ØÒ6Ô6ØØ—:‘:˜hÓ'ô
ð 	
øô ò 
Ü×$Ñ$ØÒ7Ô7Ø 3Ø Ø(Øô
ð 	
ûð
ús   ŒA<F! Â	DF! Æ!	GÆ*"GÇGÚvideo_idÚvariantc                 ó¦  — t        «       }	 |j                  d«      }	|j                  dd«      }
|j                  dd«      du }|€ t        | «      }|j                  d«      xs d}t	        di |¤Ž}t        j                  dt        j                  |«      ¬	«      }|€t        d
|› �«      ‚|j                  |«       d| i}|	j                  |d|j                  d«      t        |«      d|
i|¥|¬«       t        j                  | ||||	|xs t        ||j                  d«      ||¬«
      S # t         $ r}t        j"                  d||||¬«      ‚d}~ww xY w)aN  
    Download video content from OpenAI's video API.

    Args:
        video_id (str): The identifier of the video whose content to download.
        api_key (Optional[str]): The API key to use for authentication.
        api_base (Optional[str]): The base URL for the API.
        timeout (Optional[float]): The timeout for the request in seconds.
        custom_llm_provider (Optional[str]): The LLM provider to use. If not provided, will be auto-detected.
        variant (Optional[str]): Which downloadable asset to return. Defaults to the MP4 video.
        extra_headers (Optional[Dict[str, Any]]): Additional headers to include in the request.
        extra_query (Optional[Dict[str, Any]]): Additional query parameters.
        extra_body (Optional[Dict[str, Any]]): Additional body parameters.

    Returns:
        bytes: The raw video content as bytes.

    Example:
        ```python
        import litellm

        video_bytes = litellm.video_content(
            video_id="video_123"
        )

        with open("video.mp4", "wb") as f:
            f.write(video_bytes)
        ```
    rQ   rR   Nr&   FTr*   ÚopenairT   z,video support download is not supported for rq   Ú r    rX   r   )
rq   Úvideo_content_provider_configr*   rZ   r\   r)   r!   r   r]   rr   r+   rJ   )r/   r3   r^   r   r   r   rc   r2   rd   re   rf   ri   rj   r   Úvideo_content_handlerro   r:   r;   )rq   r)   r*   rr   r!   r"   r#   r<   r=   rQ   rR   r]   ÚdecodedrZ   Úvideo_provider_configÚvideo_content_request_paramsrE   s                    rF   Úvideo_contentr{     sœ  € ôT ›€Jð?
Ø8>¿
¹
ÐCXÓ8YÐØ-3¯Z©ZÐ8IÈ4Ó-PˆØ!Ÿ:™: l°EÓ:¸dÐBˆ	ð Ð&Ü:¸8ÓDˆGØ")§+¡+Ð.CÓ"DÒ"PÈÐô !5Ñ >°vÑ >ˆô @U×?nÑ?nØÜ×)Ñ)Ð*=Ó>ô@
Ðð
 !Ð(ÜÐKÐL_ÐK`ÐaÓbÐbà×Ñ˜&Ô!ð ˜ð5
Ð$ð
 	×.Ñ.ØØØ—‘˜FÓ#Ü Ð!=Ó>à! ?ðà.ðð !4ð 	/ô 
	
ô %×:Ñ:ØØ*?Ø 3Ø)Ø+ØÒ6Ô6Ø'Ø—:‘:˜hÓ'ØØô
ð 	
øô ò 
Ü×$Ñ$ØØ 3Ø Ø(Øô
ð 	
ûð
ús   ŒDD( Ä(	EÄ1EÅEc              ‹   óö  K  — t        «       }	 t        j                  «       }	d|d<   |€ t        | «      }
|
j	                  d«      xs d}t        t        f| ||||||dœ|¤Ž}t        j                  «       }t        |j                  |«      }|	j                  d|«      ƒ d{  –—† }t        j                  |«      r|ƒ d{  –—† }|S |}|S 7 Œ)7 Œ# t        $ r}t        j                  d||||¬«      ‚d}~ww xY w­w)	ai  
    Asynchronously download video content.

    Parameters:
    - `video_id` (str): The identifier of the video whose content to download
    - `timeout` (Optional[float]): The timeout for the request in seconds
    - `custom_llm_provider` (Optional[str]): The LLM provider to use
    - `extra_headers` (Optional[Dict[str, Any]]): Additional headers
    - `extra_query` (Optional[Dict[str, Any]]): Additional query parameters
    - `extra_body` (Optional[Dict[str, Any]]): Additional body parameters
    - `kwargs` (dict): Additional keyword arguments

    Returns:
    - `bytes`: The raw video content as bytes
    Tr&   Nr*   rt   )rq   r)   r*   rr   r!   r"   r#   ru   r+   )r/   r0   r1   r   r3   r   r{   r5   r6   r7   r8   r9   r:   r2   r;   )rq   r)   r*   rr   r!   r"   r#   r<   r=   r>   rx   r@   rA   rB   rC   rD   rE   s                    rF   Úavideo_contentr}   ~  s#  è ø€ ô8 ›€Jð&
Ü×,Ñ,Ó.ˆØ#ˆˆ|Ñð Ð&Ü:¸8ÓDˆGØ")§+¡+Ð.CÓ"DÒ"PÈÐäÜð

àØØ 3ØØ'Ø#Ø!ñ

ð ñ

ˆô !×-Ñ-Ó/ˆÜ#*¨3¯7©7°DÓ#9ÐØ%)×%9Ñ%9¸$Ð@QÓ%R×Rˆä×Ñ˜}Ô-Ø*×*ˆHð ˆð %ˆHàˆð  Søð +ùô
 ò 
Ü×$Ñ$ØØ 3Ø Ø(Øô
ð 	
ûð
üsY   ‚C9ŽBC Â C
Â!C Â?CÃ C ÃC9ÃC Ã	C9Ã
C ÃC Ã	C6ÃC1Ã1C6Ã6C9c              ‹   ó²  K  — t        «       }	 t        j                  «       }	d|d<   t        t        f| ||||||dœ|¤Ž}
t        j                  «       }t        |j                  |
«      }|	j                  d|«      ƒ d{  –—† }t        j                  |«      r|ƒ d{  –—† }|S |}|S 7 Œ)7 Œ# t        $ r}t        j                  d||||¬«      ‚d}~ww xY w­w)aö  
    Asynchronously calls the `video_remix` function with the given arguments and keyword arguments.

    Parameters:
    - `video_id` (str): The identifier of the completed video to remix
    - `prompt` (str): Updated text prompt that directs the remix generation
    - `timeout` (int): Request timeout in seconds
    - `custom_llm_provider` (Optional[str]): The LLM provider to use
    - `extra_headers` (Optional[Dict[str, Any]]): Additional headers
    - `extra_query` (Optional[Dict[str, Any]]): Additional query parameters
    - `extra_body` (Optional[Dict[str, Any]]): Additional body parameters
    - `kwargs` (dict): Additional keyword arguments

    Returns:
    - `response` (VideoObject): The response returned by the `video_remix` function.
    Tr&   )rq   r   r)   r*   r!   r"   r#   Nru   r+   )r/   r0   r1   r   Úvideo_remixr5   r6   r7   r8   r9   r:   r2   r;   )rq   r   r)   r*   r!   r"   r#   r<   r=   r>   r@   rA   rB   rC   rD   rE   s                   rF   Úavideo_remixr€   Å  sü   è ø€ ô: ›€Jð!
Ü×,Ñ,Ó.ˆØ#ˆˆ|ÑäÜð

àØØØ 3Ø'Ø#Ø!ñ

ð ñ

ˆô !×-Ñ-Ó/ˆÜ#*¨3¯7©7°DÓ#9ÐØ%)×%9Ñ%9¸$Ð@QÓ%R×Rˆä×Ñ˜}Ô-Ø*×*ˆHð ˆð %ˆHàˆð  Søð +ùô
 ò 
Ü×$Ñ$ØØ 3Ø Ø(Øô
ð 	
ûð
üsY   ‚CŽA0B, Á>B(Á?B, ÂB*ÂB, Â#CÂ$B, Â'CÂ(B, Â*B, Â,	CÂ5CÃCÃCr€   c                 ó   — y rI   rJ   ©	rq   r   r)   r*   r!   r"   r#   r€   r<   s	            rF   r   r   
  ó   € ð rM   )r€   c                 ó   — y rI   rJ   r‚   s	            rF   r   r     rƒ   rM   c                 ót  — t        «       }	 |j                  d«      }	|j                  dd«      }
|j                  dd«      du }|j                  dd«      }|�2t        |t        «      rt        j                  |«      }t        di |¤Ž}|S |€ t        | «      }|j                  d«      xs d	}t        di |¤Ž}t        j                  dt        j                  |«      ¬
«      }|€t        d|› �«      ‚|j                  |«       | |dœ}|	j!                  |d|j                  d«      t#        |«      d|
i|¥|¬«       t$        j&                  j(                  |	_        t-        j.                  | |||||	|||xs t0        ||j                  d«      ¬«      S # t2        $ r}t        j4                  d||||¬«      ‚d}~ww xY w)zm
    Maps the https://api.openai.com/v1/videos/{video_id}/remix endpoint.

    Currently supports OpenAI
    rQ   rR   Nr&   FTrS   r*   rt   rT   z!video remix is not supported for ©rq   r   ru   r    rX   r   )rq   r   Úvideo_remix_provider_configr*   rZ   r\   r!   r#   r)   r]   r   r+   rJ   )r/   r^   r3   r_   r`   ra   rb   r   r   r   r   rc   r2   rd   re   rf   ri   rj   r   r   rl   rm   r   Úvideo_remix_handlerro   r:   r;   )rq   r   r)   r*   r!   r"   r#   r<   r=   rQ   rR   r]   rS   rD   rx   rZ   r‡   Úvideo_remix_request_paramsrE   s                      rF   r   r   ,  sù  € ô$ ›€JðL
Ø8>¿
¹
ÐCXÓ8YÐØ-3¯Z©ZÐ8IÈ4Ó-PˆØ!Ÿ:™: l°EÓ:¸dÐBˆ	ð Ÿ
™
 ?°DÓ9ˆØÐ$Ü˜-¬Ô-Ü $§
¡
¨=Ó 9�ä)Ñ:¨MÑ:ˆHØˆOð Ð&Ü:¸8ÓDˆGØ")§+¡+Ð.CÓ"DÒ"PÈÐô !5Ñ >°vÑ >ˆô F[×EtÑEtØÜ×)Ñ)Ð*=Ó>ôF
Ð#ð
 'Ð.ÜÐ@ÐATÐ@UÐVÓWÐWà×Ñ˜&Ô!ð !Øñ3
Ð"ð 	×.Ñ.ØØØ—‘˜FÓ#Ü Ð!;Ó<à! ?ðà,ðð !4ð 	/ô 
	
ô )2×(=Ñ(=×(CÑ(CÐÔ%ô %×8Ñ8ØØØ(CØ 3Ø)Ø+Ø'Ø!ØÒ6Ô6ØØ—:‘:˜hÓ'ô
ð 	
øô ò 
Ü×$Ñ$ØØ 3Ø Ø(Øô
ð 	
ûð
ús   ŒA<F Â	DF Æ	F7ÆF2Æ2F7ÚafterÚlimitÚorderÚapi_keyc	              ‹   ó  K  — t        «       }
	 t        j                  «       }d|	d<   |€,t        j                  d|
j                  dd«      ¬«      \  }}}}t        t        f| ||||||||dœ	|	¤Ž}t        j                  «       }t        |j                  |«      }|j                  d|«      ƒ d{  –—† }t        j                  |«      r|ƒ d{  –—† }|S |}|S 7 Œ)7 Œ# t        $ r}t        j                  d|||
|	¬«      ‚d}~ww xY w­w)	aÃ  
    Asynchronously calls the `video_list` function with the given arguments and keyword arguments.

    Parameters:
    - `after` (Optional[str]): Identifier for the last item from the previous pagination request
    - `limit` (Optional[int]): Number of items to retrieve
    - `order` (Optional[str]): Sort order of results by timestamp. Use asc for ascending order or desc for descending order
    - `api_key` (Optional[str]): The API key to use for authentication
    - `timeout` (int): Request timeout in seconds
    - `custom_llm_provider` (Optional[str]): The LLM provider to use
    - `extra_headers` (Optional[Dict[str, Any]]): Additional headers
    - `extra_query` (Optional[Dict[str, Any]]): Additional query parameters
    - `extra_body` (Optional[Dict[str, Any]]): Additional body parameters
    - `kwargs` (dict): Additional keyword arguments

    Returns:
    - `response` (Dict[str, Any]): The response returned by the `video_list` function.
    Tr&   Nru   r'   r(   )	rŠ   r‹   rŒ   r�   r)   r*   r!   r"   r#   r+   )r/   r0   r1   r2   r   r3   r   Ú
video_listr5   r6   r7   r8   r9   r:   r;   )rŠ   r‹   rŒ   r�   r)   r*   r!   r"   r#   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   s                      rF   Úavideo_listr�   �  s7  è ø€ ôB ›€Jð'
Ü×,Ñ,Ó.ˆØ#ˆˆ|Ñð Ð&Ü+2×+CÑ+CÈ"ÐWa×WeÑWeÐfpÐrvÓWwÔ+xÑ(ˆAÐ" A qäÜð
àØØØØØ 3Ø'Ø#Ø!ñ
ð ñ
ˆô !×-Ñ-Ó/ˆÜ#*¨3¯7©7°DÓ#9ÐØ%)×%9Ñ%9¸$Ð@QÓ%R×Rˆä×Ñ˜}Ô-Ø*×*ˆHð ˆð %ˆHàˆð  Søð +ùô
 ò 
Ü×$Ñ$ØØ 3Ø Ø(Øô
ð 	
ûð
üsY   ‚DŽB C Â.CÂ/C ÃCÃC ÃDÃC ÃDÃC ÃC Ã	DÃ%C?Ã?DÄDr�   c                 ó   — y rI   rJ   ©
rŠ   r‹   rŒ   r)   r*   r!   r"   r#   r�   r<   s
             rF   r�   r�   Þ  ó   € ð rM   )r�   c                 ó   — y rI   rJ   r’   s
             rF   r�   r�   ï  r“   rM   c                 ó^  — t        «       }		 |j                  d«      }
|j                  dd«      }|j                  dd«      du }|j                  dd«      }|�>t        |t        «      rt        j                  |«      }|D �cg c]  }t        di |¤Ž‘Œ c}S |€d}t        di |¤Ž}t        j                  dt        j                  |«      ¬	«      }|€t        d
|› �«      ‚|	j                  |«       | ||dœ}|
j                  |d|j                  d«      t!        |«      d|i|¥|¬«       t"        j$                  j&                  |
_        t+        j,                  | ||||||
|||xs t.        ||j                  d«      ¬«      S c c}w # t0        $ r}t        j2                  d|||	|¬«      ‚d}~ww xY w)rP   rQ   rR   Nr&   FTrS   rt   rT   z video list is not supported for )rŠ   r‹   rŒ   ru   r    rX   r   )rŠ   r‹   rŒ   Úvideo_list_provider_configr*   rZ   r\   r!   r"   r)   r]   r   r+   rJ   )r/   r3   r^   r_   r`   ra   rb   r   r   r   rc   r2   rd   re   rf   ri   rj   r   r�   rl   rm   r   Úvideo_list_handlerro   r:   r;   )rŠ   r‹   rŒ   r)   r*   r!   r"   r#   r<   r=   rQ   rR   r]   rS   ÚitemrZ   r–   Úvideo_list_request_paramsrE   s                      rF   r�   r�     sõ  € ô& ›€JðK
Ø8>¿
¹
ÐCXÓ8YÐØ-3¯Z©ZÐ8IÈ4Ó-PˆØ!Ÿ:™: l°EÓ:¸dÐBˆ	ð Ÿ
™
 ?°DÓ9ˆØÐ$Ü˜-¬Ô-Ü $§
¡
¨=Ó 9�Ø4AÖB¨D”KÑ' $Ó'ÒBÐBð Ð&Ø"*Ðô !5Ñ >°vÑ >ˆô EZ×DsÑDsØÜ×)Ñ)Ð*=Ó>ôE
Ð"ð
 &Ð-ÜÐ?Ð@SÐ?TÐUÓVÐVà×Ñ˜&Ô!ð ØØñ2
Ð!ð 	×.Ñ.ØØØ—‘˜FÓ#Ü Ð!:Ó;à! ?ðà+ðð !4ð 	/ô 
	
ô )2×(<Ñ(<×(BÑ(BÐÔ%ô %×7Ñ7ØØØØ'AØ 3Ø)Ø+Ø'Ø#ØÒ6Ô6ØØ—:‘:˜hÓ'ô
ð 	
ùòW Cøôt ò 
Ü×$Ñ$ØØ 3Ø Ø(Øô
ð 	
ûð
ús1   ŒA4F Â E?ÂF ÂC)F Å?F Æ	F,ÆF'Æ'F,c           
   ‹   ó°  K  — t        «       }	 t        j                  «       }d|d<   t        t        f| |||||dœ|¤Ž}	t        j                  «       }
t        |
j                  |	«      }|j                  d|«      ƒ d{  –—† }t        j                  |«      r|ƒ d{  –—† }|S |}|S 7 Œ)7 Œ# t        $ r}t        j                  d||||¬«      ‚d}~ww xY w­w)aç  
    Asynchronously retrieve video status from OpenAI's video API.

    Parameters:
    - `video_id` (str): The identifier of the video whose status to retrieve
    - `model` (Optional[str]): The model to use. If not provided, will be auto-detected
    - `timeout` (int): Request timeout in seconds
    - `custom_llm_provider` (Optional[str]): The LLM provider to use
    - `extra_headers` (Optional[Dict[str, Any]]): Additional headers
    - `extra_query` (Optional[Dict[str, Any]]): Additional query parameters
    - `extra_body` (Optional[Dict[str, Any]]): Additional body parameters
    - `kwargs` (dict): Additional keyword arguments

    Returns:
    - `response` (VideoObject): The response returned by the `video_status` function.
    Tr&   )rq   r)   r*   r!   r"   r#   Nru   r+   )r/   r0   r1   r   Úvideo_statusr5   r6   r7   r8   r9   r:   r2   r;   )rq   r)   r*   r!   r"   r#   r<   r=   r>   r@   rA   rB   rC   rD   rE   s                  rF   Úavideo_statusrœ   e  sù   è ø€ ô8 ›€Jð 
Ü×,Ñ,Ó.ˆØ#ˆˆ|ÑäÜð	
àØØ 3Ø'Ø#Ø!ñ	
ð ñ	
ˆô !×-Ñ-Ó/ˆÜ#*¨3¯7©7°DÓ#9ÐØ%)×%9Ñ%9¸$Ð@QÓ%R×Rˆä×Ñ˜}Ô-Ø*×*ˆHð ˆð %ˆHàˆð  Søð +ùô
 ò 
Ü×$Ñ$ØØ 3Ø Ø(Øô
ð 	
ûð
üóY   ‚CŽA/B+ Á=B'Á>B+ ÂB)ÂB+ Â"CÂ#B+ Â&CÂ'B+ Â)B+ Â+	CÂ4CÃCÃCrœ   c                 ó   — y rI   rJ   ©rq   r)   r*   r!   r"   r#   rœ   r<   s           rF   r›   r›   ¨  ó   € ð rM   )rœ   c                 ó   — y rI   rJ   rŸ   s           rF   r›   r›   ·  r    rM   c                 óp  — t        «       }	 |j                  d«      }|j                  dd«      }	|j                  dd«      du }
|j                  dd«      }|�2t        |t        «      rt        j                  |«      }t        di |¤Ž}|S |€ t        | «      }|j                  d«      xs d	}t        di |¤Ž}t        j                  dt        j                  |«      ¬
«      }|€t        d|› �«      ‚|j                  |«       d| i}|j!                  |d|j                  d«      t#        |«      d|	i|¥|¬«       t$        j&                  j(                  |_        t-        j.                  | |||||||xs t0        |
|j                  d«      ¬«
      S # t2        $ r}t        j4                  d||||¬«      ‚d}~ww xY w)aš  
    Retrieve video status from OpenAI's video API.

    Args:
        video_id (str): The identifier of the video whose status to retrieve.
        timeout (int): The timeout for the request in seconds.
        custom_llm_provider (Optional[str]): The LLM provider to use. If not provided, will be auto-detected.
        extra_headers (Optional[Dict[str, Any]]): Additional headers to include in the request.
        extra_query (Optional[Dict[str, Any]]): Additional query parameters.
        extra_body (Optional[Dict[str, Any]]): Additional body parameters.

    Returns:
        VideoObject: The video status information.

    Example:
        ```python
        import litellm

        # Get video status
        video_status = litellm.video_status(
            video_id="video_123"
        )

        print(f"Video status: {video_status.status}")
        print(f"Progress: {video_status.progress}%")
        ```
    rQ   rR   Nr&   FTrS   r*   rt   rT   z"video status is not supported for rq   ru   r    rX   r   )
rq   Úvideo_status_provider_configr*   rZ   r\   r!   r#   r)   r]   r   r+   rJ   )r/   r3   r^   r_   r`   ra   rb   r   r   r   r   rc   r2   rd   re   rf   ri   rj   r   Úvideo_retrieverl   rm   r   Úvideo_status_handlerro   r:   r;   )rq   r)   r*   r!   r"   r#   r<   r=   rQ   rR   r]   rS   rD   rx   rZ   r£   Úvideo_status_request_paramsrE   s                     rF   r›   r›   È  sö  € ôN ›€JðJ
Ø8>¿
¹
ÐCXÓ8YÐØ-3¯Z©ZÐ8IÈ4Ó-PˆØ!Ÿ:™: l°EÓ:¸dÐBˆ	ð Ÿ
™
 ?°DÓ9ˆØÐ$Ü˜-¬Ô-Ü $§
¡
¨=Ó 9�ä)Ñ:¨MÑ:ˆHØˆOð Ð&Ü:¸8ÓDˆGØ")§+¡+Ð.CÓ"DÒ"PÈÐô !5Ñ >°vÑ >ˆô G\×FuÑFuØÜ×)Ñ)Ð*=Ó>ôG
Ð$ð
 (Ð/ÜÐAÐBUÐAVÐWÓXÐXà×Ñ˜&Ô!ð ˜ð4
Ð#ð
 	×.Ñ.ØØØ—‘˜FÓ#Ü Ð!<Ó=à! ?ðà-ðð !4ð 	/ô 
	
ô )2×(@Ñ(@×(FÑ(FÐÔ%ô %×9Ñ9ØØ)EØ 3Ø)Ø+Ø'Ø!ØÒ6Ô6ØØ—:‘:˜hÓ'ô
ð 	
øô ò 
Ü×$Ñ$ØØ 3Ø Ø(Øô
ð 	
ûð
ús   ŒA<F Â	DF Æ	F5ÆF0Æ0F5ÚnameÚvideoc              ‹   óº  K  — t        «       }	 t        j                  «       }	d|d<   |€d}t        t        f| ||||||dœ|¤Ž}
t        j                  «       }t        |j                  |
«      }|	j                  d|«      ƒ d{  –—† }t        j                  |«      r|ƒ d{  –—† }|S |}|S 7 Œ)7 Œ# t        $ r}t        j                  d||||¬«      ‚d}~ww xY w­w)zo
    Asynchronously create a character from an uploaded video file.
    Maps to POST /v1/videos/characters
    Tr&   Nrt   )r§   r¨   r)   r*   r!   r"   r#   ru   r+   )r/   r0   r1   r   Úvideo_create_characterr5   r6   r7   r8   r9   r:   r2   r;   )r§   r¨   r)   r*   r!   r"   r#   r<   r=   r>   r@   rA   rB   rC   rD   rE   s                   rF   Úavideo_create_characterr«   =  s  è ø€ ô ›€Jð$
Ü×,Ñ,Ó.ˆØ#ˆˆ|ÑàÐ&Ø"*ÐäÜ"ð

àØØØ 3Ø'Ø#Ø!ñ

ð ñ

ˆô !×-Ñ-Ó/ˆÜ#*¨3¯7©7°DÓ#9ÐØ%)×%9Ñ%9¸$Ð@QÓ%R×Rˆä×Ñ˜}Ô-Ø*×*ˆHð ˆð %ˆHàˆð  Søð +ùô
 ò 
Ü×$Ñ$ØØ 3Ø Ø(Øô
ð 	
ûð
üsY   ‚CŽA4B0 ÂB,ÂB0 Â!B.Â"B0 Â'CÂ(B0 Â+CÂ,B0 Â.B0 Â0	CÂ9CÃCÃCc                 ó.  — t        «       }	 |j                  d«      }	|j                  dd«      }
|j                  dd«      du }|j                  dd«      }|�0t        |t        «      rt        j                  |«      }t        di |¤ŽS |€d}t        di |¤Ž}t        j                  dt        j                  |«      ¬	«      }|€t        d
|› �«      ‚|j                  |«       d| i}|	j                  d|j                  d«      t!        |«      d|
i|¥|¬«       t"        j$                  j&                  |	_        t+        j,                  | |||||	||xs t.        ||j                  d«      ¬«
      S # t0        $ r}t        j2                  d||||¬«      ‚d}~ww xY w)z`
    Create a character from an uploaded video file.
    Maps to POST /v1/videos/characters
    rQ   rR   Nr&   FTrS   rt   rT   z,video create character is not supported for r§   ru   r    ©r   r    rY   rZ   r*   r   )
r§   r¨   ry   r*   rZ   r\   r!   r)   r]   r   r+   rJ   )r/   r^   r3   r_   r`   ra   rb   r   r   r   rc   r2   rd   re   rf   Úupdate_environment_variablesrj   r   rª   rl   rm   r   Úvideo_create_character_handlerro   r:   r;   )r§   r¨   r)   r*   r!   r"   r#   r<   r=   rQ   rR   r]   rS   rZ   Úprovider_configÚrequest_paramsrE   s                    rF   rª   rª   t  s¶  € ô ›€Jð9
Ø8>¿
¹
ÐCXÓ8YÐØ-3¯Z©ZÐ8IÈ4Ó-PˆØ!Ÿ:™: l°EÓ:¸dÐBˆ	àŸ
™
 ?°DÓ9ˆØÐ$Ü˜-¬Ô-Ü $§
¡
¨=Ó 9�Ü"Ñ3 ]Ñ3Ð3àÐ&Ø"*Ðä 4Ñ >°vÑ >ˆä9N×9hÑ9hØÜ×)Ñ)Ð*=Ó>ô:
ˆð
 Ð"ÜÐKÐL_ÐK`ÐaÓbÐbà×Ñ˜&Ô!Ø'-¨t nˆà×8Ñ8ØØ—‘˜FÓ#Ü  Ó0Ø-¨ÐQÀ.ÐQØ 3ð 	9ô 	
ô )2×(HÑ(H×(NÑ(NÐÔ%ä$×CÑCØØØ"1Ø 3Ø)Ø+Ø'ØÒ6Ô6ØØ—:‘:˜hÓ'ô
ð 	
øô ò 
Ü×$Ñ$ØØ 3Ø Ø(Øô
ð 	
ûð
ús   ŒA:E, ÂC$E, Å,	FÅ5FÆFÚcharacter_idc           
   ‹   ó°  K  — t        «       }	 t        j                  «       }d|d<   t        t        f| |||||dœ|¤Ž}	t        j                  «       }
t        |
j                  |	«      }|j                  d|«      ƒ d{  –—† }t        j                  |«      r|ƒ d{  –—† }|S |}|S 7 Œ)7 Œ# t        $ r}t        j                  d||||¬«      ‚d}~ww xY w­w)zi
    Asynchronously retrieve a character by ID.
    Maps to GET /v1/videos/characters/{character_id}
    Tr&   )r²   r)   r*   r!   r"   r#   Nru   r+   )r/   r0   r1   r   Úvideo_get_characterr5   r6   r7   r8   r9   r:   r2   r;   )r²   r)   r*   r!   r"   r#   r<   r=   r>   r@   rA   rB   rC   rD   rE   s                  rF   Úavideo_get_characterrµ   À  sù   è ø€ ô ›€Jð 
Ü×,Ñ,Ó.ˆØ#ˆˆ|ÑäÜð	
à%ØØ 3Ø'Ø#Ø!ñ	
ð ñ	
ˆô !×-Ñ-Ó/ˆÜ#*¨3¯7©7°DÓ#9ÐØ%)×%9Ñ%9¸$Ð@QÓ%R×Rˆä×Ñ˜}Ô-Ø*×*ˆHð ˆð %ˆHàˆð  Søð +ùô
 ò 
Ü×$Ñ$ØØ 3Ø Ø(Øô
ð 	
ûð
ür�   c                 ó,  — t        «       }	 |j                  d«      }|j                  dd«      }	|j                  dd«      du }
|j                  dd«      }|�0t        |t        «      rt        j                  |«      }t        di |¤ŽS |€d}t        di |¤Ž}t        j                  dt        j                  |«      ¬	«      }|€t        d
|› �«      ‚|j                  |«       d| i}|j                  d|j                  d«      t!        |«      d|	i|¥|¬«       t"        j$                  j&                  |_        t+        j,                  | ||||||xs t.        |
|j                  d«      ¬«	      S # t0        $ r}t        j2                  d||||¬«      ‚d}~ww xY w)zZ
    Retrieve a character by ID.
    Maps to GET /v1/videos/characters/{character_id}
    rQ   rR   Nr&   FTrS   rt   rT   z)video get character is not supported for r²   ru   r    r­   r   )	r²   ry   r*   rZ   r\   r!   r)   r]   r   r+   rJ   )r/   r^   r3   r_   r`   ra   rb   r   r   r   rc   r2   rd   re   rf   r®   rj   r   r´   rl   rm   r   Úvideo_get_character_handlerro   r:   r;   )r²   r)   r*   r!   r"   r#   r<   r=   rQ   rR   r]   rS   rZ   r°   r±   rE   s                   rF   r´   r´   ò  s´  € ô ›€Jð8
Ø8>¿
¹
ÐCXÓ8YÐØ-3¯Z©ZÐ8IÈ4Ó-PˆØ!Ÿ:™: l°EÓ:¸dÐBˆ	àŸ
™
 ?°DÓ9ˆØÐ$Ü˜-¬Ô-Ü $§
¡
¨=Ó 9�Ü"Ñ3 ]Ñ3Ð3àÐ&Ø"*Ðä 4Ñ >°vÑ >ˆä9N×9hÑ9hØÜ×)Ñ)Ð*=Ó>ô:
ˆð
 Ð"ÜÐHÐI\ÐH]Ð^Ó_Ð_à×Ñ˜&Ô!Ø'5°|Ð&Dˆà×8Ñ8ØØ—‘˜FÓ#Ü  Ó0Ø-¨ÐQÀ.ÐQØ 3ð 	9ô 	
ô )2×(EÑ(E×(KÑ(KÐÔ%ä$×@Ñ@Ø%Ø"1Ø 3Ø)Ø+Ø'ØÒ6Ô6ØØ—:‘:˜hÓ'ô

ð 
	
øô ò 
Ü×$Ñ$ØØ 3Ø Ø(Øô
ð 	
ûð
ús   ŒA:E+ ÂC#E+ Å+	FÅ4FÆF)r¨   c             ‹   ó´  K  — t        «       }		 t        j                  «       }
d|d<   t        t        f| |||||||dœ|¤Ž}t        j                  «       }t        |j                  |«      }|
j                  d|«      ƒ d{  –—† }t        j                  |«      r|ƒ d{  –—† }|S |}|S 7 Œ)7 Œ# t        $ r}t        j                  d|||	|¬«      ‚d}~ww xY w­w)zS
    Asynchronously create a video edit job.
    Maps to POST /v1/videos/edits
    Tr&   )rq   r   r¨   r)   r*   r!   r"   r#   Nru   r+   )r/   r0   r1   r   Ú
video_editr5   r6   r7   r8   r9   r:   r2   r;   )rq   r   r)   r*   r!   r"   r#   r¨   r<   r=   r>   r@   rA   rB   rC   rD   rE   s                    rF   Úavideo_editrº   <  sÿ   è ø€ ô" ›€Jð"
Ü×,Ñ,Ó.ˆØ#ˆˆ|ÑäÜð
àØØØØ 3Ø'Ø#Ø!ñ
ð ñ
ˆô !×-Ñ-Ó/ˆÜ#*¨3¯7©7°DÓ#9ÐØ%)×%9Ñ%9¸$Ð@QÓ%R×Rˆä×Ñ˜}Ô-Ø*×*ˆHð ˆð %ˆHàˆð  Søð +ùô
 ò 
Ü×$Ñ$ØØ 3Ø Ø(Øô
ð 	
ûð
üóY   ‚CŽA1B- Á?B)Â B- ÂB+ÂB- Â$CÂ%B- Â(CÂ)B- Â+B- Â-	CÂ6CÃCÃCc                óp  — t        «       }		 |j                  d«      }
|j                  dd«      }|j                  dd«      du }|j                  dd«      }|�0t        |t        «      rt        j                  |«      }t        di |¤ŽS |€ t        | «      }|j                  d«      xs d	}t        di |¤Ž}t        j                  dt        j                  |«      ¬
«      }|€t        d|› �«      ‚|	j                  |«       | |dœ}|
j!                  d|j                  d«      t#        |«      d|i|¥|¬«       t$        j&                  j(                  |
_        t-        j.                  || |||||
|||xs t0        ||j                  d«      ¬«      S # t2        $ r}t        j4                  d|||	|¬«      ‚d}~ww xY w)zD
    Create a video edit job.
    Maps to POST /v1/videos/edits
    rQ   rR   Nr&   FTrS   r*   rt   rT   z video edit is not supported for r†   ru   r    r­   r   )r   rq   Ú
video_filery   r*   rZ   r\   r!   r#   r)   r]   r   r+   rJ   )r/   r^   r3   r_   r`   ra   rb   r   r   r   r   rc   r2   rd   re   rf   r®   rj   r   r¹   rl   rm   r   Úvideo_edit_handlerro   r:   r;   )rq   r   r)   r*   r!   r"   r#   r¨   r<   r=   rQ   rR   r]   rS   rx   rZ   r°   r±   rE   s                      rF   r¹   r¹   s  sÖ  € ô" ›€Jð<
Ø8>¿
¹
ÐCXÓ8YÐØ-3¯Z©ZÐ8IÈ4Ó-PˆØ!Ÿ:™: l°EÓ:¸dÐBˆ	àŸ
™
 ?°DÓ9ˆØÐ$Ü˜-¬Ô-Ü $§
¡
¨=Ó 9�ÜÑ/ Ñ/Ð/àÐ&Ü:¸8ÓDˆGØ")§+¡+Ð.CÓ"DÒ"PÈÐä 4Ñ >°vÑ >ˆä9N×9hÑ9hØÜ×)Ñ)Ð*=Ó>ô:
ˆð
 Ð"ÜÐ?Ð@SÐ?TÐUÓVÐVà×Ñ˜&Ô!Ø3;ÀvÑ&Nˆà×8Ñ8ØØ—‘˜FÓ#Ü  Ó0Ø-¨ÐQÀ.ÐQØ 3ð 	9ô 	
ô )2×(<Ñ(<×(BÑ(BÐÔ%ä$×7Ñ7ØØØØ"1Ø 3Ø)Ø+Ø'Ø!ØÒ6Ô6ØØ—:‘:˜hÓ'ô
ð 	
øô ò 
Ü×$Ñ$ØØ 3Ø Ø(Øô
ð 	
ûð
ús   ŒA:F ÂDF Æ	F5ÆF0Æ0F5c              ‹   ó´  K  — t        «       }		 t        j                  «       }
d|d<   t        t        f| |||||||dœ|¤Ž}t        j                  «       }t        |j                  |«      }|
j                  d|«      ƒ d{  –—† }t        j                  |«      r|ƒ d{  –—† }|S |}|S 7 Œ)7 Œ# t        $ r}t        j                  d|||	|¬«      ‚d}~ww xY w­w)zY
    Asynchronously create a video extension.
    Maps to POST /v1/videos/extensions
    Tr&   )rq   r   r   r)   r*   r!   r"   r#   Nru   r+   )r/   r0   r1   r   Úvideo_extensionr5   r6   r7   r8   r9   r:   r2   r;   )rq   r   r   r)   r*   r!   r"   r#   r<   r=   r>   r@   rA   rB   rC   rD   rE   s                    rF   Úavideo_extensionrÁ   Ä  sÿ   è ø€ ô  ›€Jð"
Ü×,Ñ,Ó.ˆØ#ˆˆ|ÑäÜð
àØØØØ 3Ø'Ø#Ø!ñ
ð ñ
ˆô !×-Ñ-Ó/ˆÜ#*¨3¯7©7°DÓ#9ÐØ%)×%9Ñ%9¸$Ð@QÓ%R×Rˆä×Ñ˜}Ô-Ø*×*ˆHð ˆð %ˆHàˆð  Søð +ùô
 ò 
Ü×$Ñ$ØØ 3Ø Ø(Øô
ð 	
ûð
ür»   c                 ór  — t        «       }		 |j                  d«      }
|j                  dd«      }|j                  dd«      du }|j                  dd«      }|�0t        |t        «      rt        j                  |«      }t        di |¤ŽS |€ t        | «      }|j                  d«      xs d	}t        di |¤Ž}t        j                  dt        j                  |«      ¬
«      }|€t        d|› �«      ‚|	j                  |«       | ||dœ}|
j!                  d|j                  d«      t#        |«      d|i|¥|¬«       t$        j&                  j(                  |
_        t-        j.                  || |||||
|||xs t0        ||j                  d«      ¬«      S # t2        $ r}t        j4                  d|||	|¬«      ‚d}~ww xY w)zJ
    Create a video extension.
    Maps to POST /v1/videos/extensions
    rQ   rR   Nr&   FTrS   r*   rt   rT   z%video extension is not supported for )rq   r   r   ru   r    r­   r   )r   rq   r   ry   r*   rZ   r\   r!   r#   r)   r]   r   r+   rJ   )r/   r^   r3   r_   r`   ra   rb   r   r   r   r   rc   r2   rd   re   rf   r®   rj   r   rÀ   rl   rm   r   Úvideo_extension_handlerro   r:   r;   )rq   r   r   r)   r*   r!   r"   r#   r<   r=   rQ   rR   r]   rS   rx   rZ   r°   r±   rE   s                      rF   rÀ   rÀ   ú  sß  € ô  ›€Jð@
Ø8>¿
¹
ÐCXÓ8YÐØ-3¯Z©ZÐ8IÈ4Ó-PˆØ!Ÿ:™: l°EÓ:¸dÐBˆ	àŸ
™
 ?°DÓ9ˆØÐ$Ü˜-¬Ô-Ü $§
¡
¨=Ó 9�ÜÑ/ Ñ/Ð/àÐ&Ü:¸8ÓDˆGØ")§+¡+Ð.CÓ"DÒ"PÈÐä 4Ñ >°vÑ >ˆä9N×9hÑ9hØÜ×)Ñ)Ð*=Ó>ô:
ˆð
 Ð"ÜÐDÐEXÐDYÐZÓ[Ð[à×Ñ˜&Ô!à ØØñ'
ˆð 	×8Ñ8ØØ—‘˜FÓ#Ü  Ó0Ø-¨ÐQÀ.ÐQØ 3ð 	9ô 	
ô )2×(AÑ(A×(GÑ(GÐÔ%ä$×<Ñ<ØØØØ"1Ø 3Ø)Ø+Ø'Ø!ØÒ6Ô6ØØ—:‘:˜hÓ'ô
ð 	
øô ò 
Ü×$Ñ$ØØ 3Ø Ø(Øô
ð 	
ûð
ús   ŒA:F ÂDF Æ	F6ÆF1Æ1F6)
NNNNNéX  NNNN)NNNNNN)rÄ   NNNN)	NNNNrÄ   NNNN)NNNrÄ   NNNN)Hr0   r5   ra   Úcollections.abcr   Ú	functoolsr   Útypingr   r   r   Úhttpx._typesr   r2   Úlitellm.constantsr	   r
   ro   Ú1litellm.litellm_core_utils.get_llm_provider_logicr   Ú*litellm.litellm_core_utils.litellm_loggingr   ÚLiteLLMLoggingObjÚ+litellm.llms.base_llm.videos.transformationr   Ú*litellm.llms.custom_httpx.llm_http_handlerr   Úlitellm.mainr   Úlitellm.types.routerr   Úlitellm.types.utilsr   r   Úlitellm.types.videos.mainr   r   r   Úlitellm.types.videos.utilsr   Úlitellm.utilsr   r   Úlitellm.videos.utilsr   r   Ú__annotations__r`   rj   ÚobjectrG   Úintr4   ÚfloatÚbytesr{   r}   r€   r   Úlistr�   r�   rœ   r›   r«   rª   rµ   r´   rº   r¹   rÁ   rÀ   rJ   rM   rF   ú<module>rÜ      sD  ðÜ Û Û Ý %Ý ß +Ñ +å $ã Ý :Ý HÝ NÝ SÝ GÝ IÝ .Ý 5ß 4÷ñ õ
 Eß 7Ý <ñ (:Ó';Ð Ð$Ó ;ð ð Ø(,ØØØØØð /3Ø,0Ø+/ñQ
ØðQ
à�‰:ðQ
ð  Ñ%ðQ
ð �4‰Zð	Q
ð
 �‰*ðQ
ð �‰*ðQ
ð ˜˜V˜Ñ$ tÑ+ðQ
ð �c˜6�kÑ" TÑ)ðQ
ð �S˜&�[Ñ! DÑ(ðQ
ð òQ
ó ðQ
ðn 
ð Ø(,ØØØØØ&*Ø.2Ø,0Ø+/ñØðà�‰:ðð  Ñ%ðð �4‰Zð	ð
 �‰*ðð �‰*ðð ðð ˜t™ðð ˜˜V˜Ñ$ tÑ+ðð �c˜6�kÑ" TÑ)ðð �S˜&�[Ñ! DÑ(ðð ˜t‘}ðð ðð ˆv�v˜{Ð*Ñ+òó 
ðð& 
ð Ø(,ØØØØØ&*Ø.2Ø,0Ø+/ðð ).òØðà�‰:ðð  Ñ%ðð �4‰Zð	ð
 �‰*ðð �‰*ðð ðð ˜t™ðð ˜˜V˜Ñ$ tÑ+ðð �c˜6�kÑ" TÑ)ðð �S˜&�[Ñ! DÑ(ðð ˜u‘~ðð ðð òó 
ðð* ð Ø(,ØØØØØð /3Ø,0Ø+/ñh
Øðh
à�‰:ðh
ð  Ñ%ðh
ð �4‰Zð	h
ð
 �‰*ðh
ð �‰*ðh
ð ˜˜V˜Ñ$ tÑ+ðh
ð �c˜6�kÑ" TÑ)ðh
ð �S˜&�[Ñ! DÑ(ðh
ð �9˜V V¨[Ð8Ñ9Ñ9òh
ó ðh
ðV ð !Ø&*Øð /3Ø,0Ø+/ñi
Øði
à�T‰\ði
ð ˜t™ði
ð �4‰Zð	i
ð ˜˜V˜Ñ$ tÑ+ði
ð �c˜6�kÑ" TÑ)ði
ð �S˜&�[Ñ! DÑ(ði
ð ˆY�v˜v uÐ,Ñ-Ñ-òi
ó ði
ðZ ð !Ø&*Øð /3Ø,0Ø+/ñB
ØðB
à�T‰\ðB
ð ˜t™ðB
ð �4‰Zð	B
ð ˜˜V˜Ñ$ tÑ+ðB
ð �c˜6�kÑ" TÑ)ðB
ð �S˜&�[Ñ! DÑ(ðB
ð òB
ó ðB
ðL ð Øð /3Ø,0Ø+/ñ>
Øð>
àð>
ð ˜˜V˜Ñ$ tÑ+ð>
ð �c˜6�kÑ" TÑ)ð>
ð �S˜&�[Ñ! DÑ(ð>
ð ò>
ó ð>
ðH 
ð Ø&*Ø.2Ø,0Ø+/ñØðàðð ðð ˜t™ð	ð
 ˜˜V˜Ñ$ tÑ+ðð �c˜6�kÑ" TÑ)ðð �S˜&�[Ñ! DÑ(ðð ˜$‘-ðð ðð ˆv�v˜{Ð*Ñ+òó 
ðð 
ð Ø&*Ø.2Ø,0Ø+/ðð $)òØðàðð ðð ˜t™ð	ð
 ˜˜V˜Ñ$ tÑ+ðð �c˜6�kÑ" TÑ)ðð �S˜&�[Ñ! DÑ(ðð ˜%‘.ðð ðð òó 
ðð" ð Øð /3Ø,0Ø+/ñ^
Øð^
àð^
ð ˜˜V˜Ñ$ tÑ+ð^
ð �c˜6�kÑ" TÑ)ð^
ð �S˜&�[Ñ! DÑ(ð^
ð �9˜V V¨[Ð8Ñ9Ñ9ò^
ó ð^
ðD àØØØØØð /3Ø,0Ø+/ñH
Ø�‰:ðH
à�‰:ðH
ð �‰:ðH
ð �4‰Zð	H
ð ˜˜V˜Ñ$ tÑ+ðH
ð �c˜6�kÑ" TÑ)ðH
ð �S˜&�[Ñ! DÑ(ðH
ð 
ˆ+ÑòH
ó ðH
ð\ 
àØØØØ&*Ø.2Ø,0Ø+/ñØ�‰:ðà�‰:ðð �‰:ðð ð	ð
 ˜t™ðð ˜˜V˜Ñ$ tÑ+ðð �c˜6�kÑ" TÑ)ðð �S˜&�[Ñ! DÑ(ðð ˜‘ðð ðð ˆv�v˜t KÑ0Ð0Ñ1òó 
ðð  
àØØØØ&*Ø.2Ø,0Ø+/ðð #(òØ�‰:ðà�‰:ðð �‰:ðð ð	ð
 ˜t™ðð ˜˜V˜Ñ$ tÑ+ðð �c˜6�kÑ" TÑ)ðð �S˜&�[Ñ! DÑ(ðð ˜‘ðð ðð 
ˆ+Ñòó 
ðð$ àØØØØð /3Ø,0Ø+/ñ^
Ø�‰:ð^
à�‰:ð^
ð �‰:ð^
ð ˜˜V˜Ñ$ tÑ+ð^
ð �c˜6�kÑ" TÑ)ð^
ð �S˜&�[Ñ! DÑ(ð^
ð 
ˆ+Ñ˜ 6¨6°4¸Ñ3DÐ#DÑEÑEò^
ó ð^
ðD ð Øð /3Ø,0Ø+/ñ<
Øð<
ð ˜˜V˜Ñ$ tÑ+ð<
ð �c˜6�kÑ" TÑ)ð<
ð �S˜&�[Ñ! DÑ(ð<
ð ò<
ó ð<
ðD 
ð Ø&*Ø.2Ø,0Ø+/ñØðàðð ˜t™ðð ˜˜V˜Ñ$ tÑ+ð	ð
 �c˜6�kÑ" TÑ)ðð �S˜&�[Ñ! DÑ(ðð ˜4‘=ðð ðð ˆv�v˜{Ð*Ñ+òó 
ðð 
ð Ø&*Ø.2Ø,0Ø+/ðð %*òØðàðð ˜t™ðð ˜˜V˜Ñ$ tÑ+ð	ð
 �c˜6�kÑ" TÑ)ðð �S˜&�[Ñ! DÑ(ðð ˜5‘>ðð ðð òó 
ðð  ð Øð /3Ø,0Ø+/ñq
Øðq
ð ˜˜V˜Ñ$ tÑ+ðq
ð �c˜6�kÑ" TÑ)ðq
ð �S˜&�[Ñ! DÑ(ðq
ð �9˜V V¨[Ð8Ñ9Ñ9òq
ó ðq
ðh ð ØØ.2Ø,0Ø+/ñ3
Ø
ð3
àð3
ð
 ˜˜V˜Ñ$ tÑ+ð3
ð �c˜6�kÑ" TÑ)ð3
ð �S˜&�[Ñ! DÑ(ð3
ð ò3
ó ð3
ðl ð ØØ.2Ø,0Ø+/ñH
Ø
ðH
àðH
ð
 ˜˜V˜Ñ$ tÑ+ðH
ð �c˜6�kÑ" TÑ)ðH
ð �S˜&�[Ñ! DÑ(ðH
ð �y ¨°Ð!@ÑAÑAòH
ó ðH
ðV ð ØØ.2Ø,0Ø+/ñ.
Øð.
ð ˜˜V˜Ñ$ tÑ+ð	.
ð
 �c˜6�kÑ" TÑ)ð.
ð �S˜&�[Ñ! DÑ(ð.
ð ò.
ó ð.
ðb ð ØØ.2Ø,0Ø+/ñF
ØðF
ð ˜˜V˜Ñ$ tÑ+ð	F
ð
 �c˜6�kÑ" TÑ)ðF
ð �S˜&�[Ñ! DÑ(ðF
ð �y ¨°Ð!@ÑAÑAòF
ó ðF
ðR ð ØØ.2Ø,0Ø+/ð3
ð !%ò3
Øð3
àð3
ð
 ˜˜V˜Ñ$ tÑ+ð3
ð �c˜6�kÑ" TÑ)ð3
ð �S˜&�[Ñ! DÑ(ð3
ð ˜Ñð3
ð ò3
ó ð3
ðl ð ØØ.2Ø,0Ø+/ðM
ð !%òM
ØðM
àðM
ð
 ˜˜V˜Ñ$ tÑ+ðM
ð �c˜6�kÑ" TÑ)ðM
ð �S˜&�[Ñ! DÑ(ðM
ð ˜ÑðM
ð �9˜V V¨[Ð8Ñ9Ñ9òM
ó ðM
ð` ð
 ØØ.2Ø,0Ø+/ñ2
Øð2
àð2
ð ð2
ð ˜˜V˜Ñ$ tÑ+ð2
ð �c˜6�kÑ" TÑ)ð2
ð �S˜&�[Ñ! DÑ(ð2
ð ò2
ó ð2
ðj ð
 ØØ.2Ø,0Ø+/ñP
ØðP
àðP
ð ðP
ð ˜˜V˜Ñ$ tÑ+ðP
ð �c˜6�kÑ" TÑ)ðP
ð �S˜&�[Ñ! DÑ(ðP
ð �9˜V V¨[Ð8Ñ9Ñ9òP
ó ñP
rM   