
    CjD              !       z   % S SK r S SKrS SKrS SKJr  S SKJrJrJrJ	r	J
r
JrJrJr  S SKrS SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S S	KJr  S S
KJr  S SKJr  S SK J!r!J"r"  S SK#J$r$J%r%J&r&  S SK'J(r(  S SK)J*r*J+r+  S SK,J-r-  \" 5       r.\\/S'   \+          SLS\0S\\0   S\\"   S\\0   S\\0   S\\0   S\\\0\4      S\\\0\4      S\\\0\4      S\&4S jj5       r1\          SLS\0S\\0   S\\"   S\\0   S\\0   S\\0   S\2S\\0   S\\\0\4      S\\\0\4      S\\\0\4      S\
S    S!\S\\\\&4   4S" jj5       r3\          SLS#S$.S\0S\\0   S\\"   S\\0   S\\0   S\\0   S\2S\\0   S\\\0\4      S\\\0\4      S\\\0\4      S\
S#   S!\S\&4S% jjj5       r3\+          SLS\0S\\0   S\\"   S\\0   S\\0   S\\0   S\\\0\4      S\\\0\4      S\\\0\4      S\\&\\\\&4   4   4S& jj5       r3\+      SMS'\0S\\4   S\\0   S(\\0   S\\\0\4      S\\\0\4      S\\\0\4      S\\5\\\\54   4   4S) jj5       r6\+      SMS'\0S\\4   S\\0   S(\\0   S\\\0\4      S\\\0\4      S\\\0\4      S\54S* jj5       r7\+     SNS'\0S\0S\\\0\4      S\\\0\4      S\\\0\4      S\&4S+ jj5       r8\     SNS'\0S\0S\2S\\0   S\\\0\4      S\\\0\4      S\\\0\4      S,\
S    S!\S\\\\&4   4S- jj5       r9\     SNS#S..S'\0S\0S\2S\\0   S\\\0\4      S\\\0\4      S\\\0\4      S,\
S#   S!\S\&4S/ jjj5       r9\+     SNS'\0S\0S\\\0\4      S\\\0\4      S\\\0\4      S\\&\\\\&4   4   4S0 jj5       r9\+         SOS1\\0   S2\\2   S3\\0   S4\\0   S\\\0\4      S\\\0\4      S\\\0\4      S\	\&   4S5 jj5       r:\        SPS1\\0   S2\\2   S3\\0   S\2S\\0   S\\\0\4      S\\\0\4      S\\\0\4      S6\
S    S!\S\\\\	\&   4   4S7 jj5       r;\        SPS#S8.S1\\0   S2\\2   S3\\0   S\2S\\0   S\\\0\4      S\\\0\4      S\\\0\4      S6\
S#   S!\S\	\&   4S9 jjj5       r;\+        SPS1\\0   S2\\2   S3\\0   S\\\0\4      S\\\0\4      S\\\0\4      S\\	\&   \\\\	\&   4   4   4S: jj5       r;\+     SNS'\0S\\\0\4      S\\\0\4      S\\\0\4      S\&4
S; jj5       r<\     SNS'\0S\2S\\0   S\\\0\4      S\\\0\4      S\\\0\4      S<\
S    S!\S\\\\&4   4S= jj5       r=\     SNS#S>.S'\0S\2S\\0   S\\\0\4      S\\\0\4      S\\\0\4      S<\
S#   S!\S\&4S? jjj5       r=\+     SNS'\0S\\\0\4      S\\\0\4      S\\\0\4      S\\&\\\\&4   4   4
S@ jj5       r=\+     SNSA\0SB\S\\\0\4      S\\\0\4      S\\\0\4      S\$4SC jj5       r>\+     SNSA\0SB\S\\\0\4      S\\\0\4      S\\\0\4      S\\$\\\\$4   4   4SD jj5       r?\+     SNSE\0S\\\0\4      S\\\0\4      S\\\0\4      S\$4
SF jj5       r@\+     SNSE\0S\\\0\4      S\\\0\4      S\\\0\4      S\\$\\\\$4   4   4
SG jj5       rA\+     SNS'\0S\0S\\\0\4      S\\\0\4      S\\\0\4      S\&4SH jj5       rB\+     SNS'\0S\0S\\\0\4      S\\\0\4      S\\\0\4      S\\&\\\\&4   4   4SI jj5       rC\+     SNS'\0S\0S\0S\\\0\4      S\\\0\4      S\\\0\4      S\&4SJ jj5       rD\+     SNS'\0S\0S\0S\\\0\4      S\\\0\4      S\\\0\4      S\\&\\\\&4   4   4SK jj5       rEg)Q    N)partial)Any	CoroutineDictListLiteralOptionalUnionoverload)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                 :  #    [        5       n [        R                  " 5       nSUS'   Uc6  [        R                  " U=(       d    [
        UR                  SS5      S9u  p  n[        [        4U UUUUUUUUU	U
S.UD6n[        R                  " 5       n[        UR                  U5      nUR                  SU5      I Sh  vN n[        R                  " U5      (       a  UI Sh  vN nU$ UnU$  N/ N! [         a  n[        R                  " UUUUUS9eSnAff = f7f)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                        e/home/rurouni/.local/share/pipx/venvs/strix-agent/lib/python3.13/site-packages/litellm/videos/main.pyavideo_generationrJ      sB    J J,
%%'#| &+2+C+C;;#
D9,(AAq
 
+ 3'#!
 
  &&(#CGGT2"2249JKK}--**H  %H L +
  
$$ 3 (
 	

sY   DB/C1 =C->$C1 "C/#C1 (D)C1 ,D-C1 /C1 1
D;DDDr,   r-   rJ   Tr?   c                    g N r   r   r    r!   r"   r#   r,   r-   r$   r%   r&   rJ   r?   s                rI   r7   r7   w       "     F)rJ   c                    g rL   rM   rN   s                rI   r7   r7      rO   rP   c                    [        5       n UR                  S5      nUR                  SS5      nUR                  SS5      SL nUR                  SS5      nUb8  [        U[        5      (       a  [
        R                  " U5      n[        S0 UD6nU$ [        S0 UD6n[        U=(       d    [        US9u  p  n[        R                  " U[        R                  " U5      S	9nUc  [        S
U 35      eUR!                  U5        ["        R$                  " U5      n["        R&                  " UUUS9nUR)                  UUU[+        U5      SU0UEUS9  [,        R.                  R0                  Ul        [4        R6                  " UU UUUUUUU
U=(       d    [8        UUR                  S5      S9$ ! [:         a*  n[        R<                  " U=(       d    [        UUUUS9eSnAff = f)P
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   rY   (video_generation_optional_request_paramsr-   r]   logging_objr$   r&   r,   	_is_asyncr   r.   rM   )r2   popr6   
isinstancestrjsonloadsr   r   r   r   r   get_provider_video_configr5   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@   rT   rU   r`   rV   rG   r]   rB   rY   rZ   video_generation_request_paramsrH   s                           rI   r7   r7      s   2 JZ
17<Q1R)/4Et)LJJ|U3t;	 

?D9$--- $

= 9"3]3HO .77+;77 3,
(Aq ";; --.AB 	) ,389L8MN  	&! (UU 	) (LL1Q1Q 	( 	.. !@A!?1 !4 	/ 
	
 )2(>(>(D(D% %==-M5T 3)+'!66::h'
 	
  
$$77 3 (
 	

s   BF( DF( (
G2%GGvideo_idvariantc                    [        5       n UR                  S5      n	UR                  SS5      n
UR                  SS5      SL nUc%  [        U 5      nUR                  S5      =(       d    Sn[	        S0 UD6n[
        R                  " S[        R                  " U5      S	9nUc  [        S
U 35      eUR                  U5        SU 0nU	R                  USUR                  S5      [        U5      SU
0UEUS9  [        R                  " U UUUU	U=(       d    [        UUR                  S5      UUS9
$ ! [          a  n[        R"                  " SUUUUS9eSnAff = f)a  
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)
    ```
rT   rU   Nr)   FTr-   openairW   z,video support download is not supported for rt    r#   r[   r   )
rt   video_content_provider_configr-   r]   r_   r,   r$   r   r`   ru   r.   rM   )r2   r6   ra   r   r   r   rf   r5   rg   rh   ri   rl   rm   r   video_content_handlerrr   r=   r>   )rt   r,   r-   ru   r$   r%   r&   r?   r@   rT   rU   r`   decodedr]   video_provider_configvideo_content_request_paramsrH   s                    rI   video_contentr~     s   Z JC
17<Q1R)/4Et)LJJ|U3t;	 &3H=G")++.C"D"P .77 ";; --.AB 	 !(>?R>ST  	&! .
$
 	..F# !=>!?. !4 	/ 
	
 %::*? 3)+66'::h'
 	
  
$$ 3 (
 	

s   D!D. .
E8EEc                   #    [        5       n [        R                  " 5       n	SUS'   Uc%  [        U 5      n
U
R	                  S5      =(       d    Sn[        [        4U UUUUUUS.UD6n[        R                  " 5       n[        UR                  U5      nU	R                  SU5      I Sh  vN n[        R                  " U5      (       a  UI Sh  vN nU$ UnU$  N/ N! [         a  n[        R                  " SUUUUS9eSnAff = f7f)	a9  
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-   rw   )rt   r,   r-   ru   r$   r%   r&   rx   r.   )r2   r3   r4   r   r6   r   r~   r8   r9   r:   r;   r<   r=   r5   r>   )rt   r,   r-   ru   r$   r%   r&   r?   r@   rA   r{   rC   rD   rE   rF   rG   rH   s                    rI   avideo_contentr     s$    8 J&
%%'#| &3H=G")++.C"D"P

 3'#!

 

 &&(#CGGT2"2249JKK}--**H  %H L +
  
$$ 3 (
 	

sY   DBC (C)$C CC DC DC C 
D&C>>DDc                   #    [        5       n [        R                  " 5       n	SUS'   [        [        4U UUUUUUS.UD6n
[
        R                  " 5       n[        UR                  U
5      nU	R                  SU5      I Sh  vN n[        R                  " U5      (       a  UI Sh  vN nU$ UnU$  N/ N! [         a  n[        R                  " SUUUUS9eSnAff = f7f)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)   rt   r   r,   r-   r$   r%   r&   Nrx   r.   )r2   r3   r4   r   video_remixr8   r9   r:   r;   r<   r=   r5   r>   rt   r   r,   r-   r$   r%   r&   r?   r@   rA   rC   rD   rE   rF   rG   rH   s                   rI   avideo_remixr     s     : J!
%%'#|

 3'#!

 

 &&(#CGGT2"2249JKK}--**H  %H L +
  
$$ 3 (
 	

Y   CA2B4  B0$B4 %B2&B4 +C,B4 /C0B4 2B4 4
C>CCCr   c                    g rL   rM   	rt   r   r,   r-   r$   r%   r&   r   r?   s	            rI   r   r          rP   )r   c                    g rL   rM   r   s	            rI   r   r   )  r   rP   c                    [        5       n UR                  S5      n	UR                  SS5      n
UR                  SS5      SL nUR                  SS5      nUb8  [        U[        5      (       a  [
        R                  " U5      n[        S0 UD6nU$ Uc%  [        U 5      nUR                  S5      =(       d    S	n[        S0 UD6n[        R                  " S[        R                  " U5      S
9nUc  [        SU 35      eUR                  U5        U US.nU	R!                  USUR                  S5      [#        U5      SU
0UEUS9  [$        R&                  R(                  U	l        [,        R.                  " U UUUUU	UUU=(       d    [0        UUR                  S5      S9$ ! [2         a  n[        R4                  " SUUUUS9eSnAff = f)za
Maps the https://api.openai.com/v1/videos/{video_id}/remix endpoint.

Currently supports OpenAI
rT   rU   Nr)   FTrV   r-   rw   rW   z!video remix is not supported for rt   r   rx   r#   r[   r   )rt   r   video_remix_provider_configr-   r]   r_   r$   r&   r,   r`   r   r.   rM   )r2   ra   r6   rb   rc   rd   re   r   r   r   r   rf   r5   rg   rh   ri   rl   rm   r   r   ro   rp   r   video_remix_handlerrr   r=   r>   )rt   r   r,   r-   r$   r%   r&   r?   r@   rT   rU   r`   rV   rG   r{   r]   r   video_remix_request_paramsrH   s                      rI   r   r   ;  s   * JN
17<Q1R)/4Et)LJJ|U3t;	 

?D9$--- $

= 9"3]3HO &3H=G")++.C"D"P .77 ";; --.AB 	$ '.@AT@UVWW&! !,
" 	..F# !;<!?, !4 	/ 
	
 )2(=(=(C(C% %88(C 3)+'!66::h'
 	
  
$$ 3 (
 	

s   BF DF 
G&F>>Gafterlimitorderapi_keyc	                   #    [        5       n
 [        R                  " 5       nSU	S'   Uc)  [        R                  " SU
R                  SS5      S9u  p  n[        [        4U UUUUUUUUS.	U	D6n[        R                  " 5       n[        UR                  U5      nUR                  SU5      I Sh  vN n[        R                  " U5      (       a  UI Sh  vN nU$ UnU$  N/ N! [         a  n[        R                  " SUUU
U	S9eSnAff = f7f)	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)   Nrx   r*   r+   )	r   r   r   r   r,   r-   r$   r%   r&   r.   )r2   r3   r4   r5   r   r6   r   
video_listr8   r9   r:   r;   r<   r=   r>   )r   r   r   r   r,   r-   r$   r%   r&   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   s                      rI   avideo_listr     s5    B J)
%%'#| &+2+C+C:>>*d#C,(AAq 
 3'#!
 
 &&(#CGGT2"2249JKK}--**H  %H L +
  
$$ 3 (
 	

sY   DB C" .C/$C" C C" DC" DC"  C" "
D	,DD		Dr   c                    g rL   rM   
r   r   r   r,   r-   r$   r%   r&   r   r?   s
             rI   r   r          rP   )r   c                    g rL   rM   r   s
             rI   r   r     r   rP   c                 r   [        5       n	 UR                  S5      n
UR                  SS5      nUR                  SS5      SL nUR                  SS5      nUbG  [        U[        5      (       a  [
        R                  " U5      nU Vs/ s H  n[        S0 UD6PM     sn$ Uc  Sn[        S0 UD6n[        R                  " S[        R                  " U5      S	9nUc  [        S
U 35      eU	R                  U5        U UUS.nU
R                  USUR                  S5      [!        U5      SU0UEUS9  ["        R$                  R&                  U
l        [*        R,                  " U UUUUUU
UUU=(       d    [.        UUR                  S5      S9$ s  snf ! [0         a  n[        R2                  " SUUU	US9eSnAff = f)rS   rT   rU   Nr)   FTrV   rw   rW   z video list is not supported for )r   r   r   rx   r#   r[   r   )r   r   r   video_list_provider_configr-   r]   r_   r$   r%   r,   r`   r   r.   rM   )r2   r6   ra   rb   rc   rd   re   r   r   r   rf   r5   rg   rh   ri   rl   rm   r   r   ro   rp   r   video_list_handlerrr   r=   r>   )r   r   r   r,   r-   r$   r%   r&   r?   r@   rT   rU   r`   rV   itemr]   r   video_list_request_paramsrH   s                      rI   r   r     s   , JM
17<Q1R)/4Et)LJJ|U3t;	 

?D9$--- $

= 94ABMDK'$'MBB &"* .77 ";; --.AB 	# &-?@S?TUVV&! +
! 	..F# !:;!?+ !4 	/ 
	
 )2(<(<(B(B% %77'A 3)+'#66::h'
 	
[ Cx  
$$ 3 (
 	

s1   A;F F
F C*F 
F 
F6F11F6c           
        #    [        5       n [        R                  " 5       nSUS'   [        [        4U UUUUUS.UD6n	[
        R                  " 5       n
[        U
R                  U	5      nUR                  SU5      I Sh  vN n[        R                  " U5      (       a  UI Sh  vN nU$ UnU$  N/ N! [         a  n[        R                  " SUUUUS9eSnAff = f7f)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)   )rt   r,   r-   r$   r%   r&   Nrx   r.   )r2   r3   r4   r   video_statusr8   r9   r:   r;   r<   r=   r5   r>   )rt   r,   r-   r$   r%   r&   r?   r@   rA   rC   rD   rE   rF   rG   rH   s                  rI   avideo_statusr     s     8 J 
%%'#|	
 3'#!	
 	
 &&(#CGGT2"2249JKK}--**H  %H L +
  
$$ 3 (
 	

Y   CA1B3 ?B/ $B3 $B1%B3 *C+B3 .C/B3 1B3 3
C=CCCr   c                    g rL   rM   rt   r,   r-   r$   r%   r&   r   r?   s           rI   r   r          rP   )r   c                    g rL   rM   r   s           rI   r   r     r   rP   c                    [        5       n UR                  S5      nUR                  SS5      n	UR                  SS5      SL n
UR                  SS5      nUb8  [        U[        5      (       a  [
        R                  " U5      n[        S0 UD6nU$ Uc%  [        U 5      nUR                  S5      =(       d    S	n[        S0 UD6n[        R                  " S[        R                  " U5      S
9nUc  [        SU 35      eUR                  U5        SU 0nUR!                  USUR                  S5      [#        U5      SU	0UEUS9  [$        R&                  R(                  Ul        [,        R.                  " U UUUUUUU=(       d    [0        U
UR                  S5      S9
$ ! [2         a  n[        R4                  " SUUUUS9eSnAff = f)aF  
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}%")
    ```
rT   rU   Nr)   FTrV   r-   rw   rW   z"video status is not supported for rt   rx   r#   r[   r   )
rt   video_status_provider_configr-   r]   r_   r$   r&   r,   r`   r   r.   rM   )r2   r6   ra   rb   rc   rd   re   r   r   r   r   rf   r5   rg   rh   ri   rl   rm   r   video_retrievero   rp   r   video_status_handlerrr   r=   r>   )rt   r,   r-   r$   r%   r&   r?   r@   rT   rU   r`   rV   rG   r{   r]   r   video_status_request_paramsrH   s                     rI   r   r     s   T JL
17<Q1R)/4Et)LJJ|U3t;	 

?D9$--- $

= 9"3]3HO &3H=G")++.C"D"P .77 ";; --.AB 	% (/ABUAVWXX&! -
#
 	..F# !<=!?- !4 	/ 
	
 )2(@(@(F(F% %99)E 3)+'!66::h'
 	
  
$$ 3 (
 	

s   BF D	F 
G$F<<Gnamevideoc                   #    [        5       n [        R                  " 5       n	SUS'   Uc  Sn[        [        4U UUUUUUS.UD6n
[
        R                  " 5       n[        UR                  U
5      nU	R                  SU5      I Sh  vN n[        R                  " U5      (       a  UI Sh  vN nU$ UnU$  N/ N! [         a  n[        R                  " SUUUUS9eSnAff = f7f)zc
Asynchronously create a character from an uploaded video file.
Maps to POST /v1/videos/characters
Tr)   Nrw   )r   r   r,   r-   r$   r%   r&   rx   r.   )r2   r3   r4   r   video_create_characterr8   r9   r:   r;   r<   r=   r5   r>   )r   r   r,   r-   r$   r%   r&   r?   r@   rA   rC   rD   rE   rF   rG   rH   s                   rI   avideo_create_characterr   ]  s	     J$
%%'#|&"*"

 3'#!

 

 &&(#CGGT2"2249JKK}--**H  %H L +
  
$$ 3 (
 	

sY   C#A7B9 B5$B9 *B7+B9 0C#1B9 4C#5B9 7B9 9
C CC  C#c                 <   [        5       n UR                  S5      n	UR                  SS5      n
UR                  SS5      SL nUR                  SS5      nUb6  [        U[        5      (       a  [
        R                  " U5      n[        S0 UD6$ Uc  Sn[        S0 UD6n[        R                  " S[        R                  " U5      S	9nUc  [        S
U 35      eUR                  U5        SU 0nU	R                  SUR                  S5      [!        U5      SU
0UEUS9  ["        R$                  R&                  U	l        [*        R,                  " U UUUUU	UU=(       d    [.        UUR                  S5      S9
$ ! [0         a  n[        R2                  " SUUUUS9eSnAff = f)zT
Create a character from an uploaded video file.
Maps to POST /v1/videos/characters
rT   rU   Nr)   FTrV   rw   rW   z,video create character is not supported for r   rx   r#   r   r#   r\   r]   r-   r   )
r   r   r|   r-   r]   r_   r$   r,   r`   r   r.   rM   )r2   ra   r6   rb   rc   rd   re   r   r   r   rf   r5   rg   rh   ri   update_environment_variablesrm   r   r   ro   rp   r   video_create_character_handlerrr   r=   r>   )r   r   r,   r-   r$   r%   r&   r?   r@   rT   rU   r`   rV   r]   provider_configrequest_paramsrH   s                    rI   r   r     s    J=
17<Q1R)/4Et)LJJ|U3t;	

?D9$--- $

= 9"3]33&"*-77 ";; --.AB 	 ">?R>ST  	&! &~88F# 0-Q.Q 3 	9 	
 )2(H(H(N(N%$CC"1 3)+'66::h'
 	
  
$$ 3 (
 	

s   BE4 C%E4 4
F>FFcharacter_idc           
        #    [        5       n [        R                  " 5       nSUS'   [        [        4U UUUUUS.UD6n	[
        R                  " 5       n
[        U
R                  U	5      nUR                  SU5      I Sh  vN n[        R                  " U5      (       a  UI Sh  vN nU$ UnU$  N/ N! [         a  n[        R                  " SUUUUS9eSnAff = f7f)z]
Asynchronously retrieve a character by ID.
Maps to GET /v1/videos/characters/{character_id}
Tr)   )r   r,   r-   r$   r%   r&   Nrx   r.   )r2   r3   r4   r   video_get_characterr8   r9   r:   r;   r<   r=   r5   r>   )r   r,   r-   r$   r%   r&   r?   r@   rA   rC   rD   rE   rF   rG   rH   s                  rI   avideo_get_characterr     s      J 
%%'#|	
% 3'#!	
 	
 &&(#CGGT2"2249JKK}--**H  %H L +
  
$$ 3 (
 	

r   c                 :   [        5       n UR                  S5      nUR                  SS5      n	UR                  SS5      SL n
UR                  SS5      nUb6  [        U[        5      (       a  [
        R                  " U5      n[        S0 UD6$ Uc  Sn[        S0 UD6n[        R                  " S[        R                  " U5      S	9nUc  [        S
U 35      eUR                  U5        SU 0nUR                  SUR                  S5      [!        U5      SU	0UEUS9  ["        R$                  R&                  Ul        [*        R,                  " U UUUUUU=(       d    [.        U
UR                  S5      S9	$ ! [0         a  n[        R2                  " SUUUUS9eSnAff = f)zN
Retrieve a character by ID.
Maps to GET /v1/videos/characters/{character_id}
rT   rU   Nr)   FTrV   rw   rW   z)video get character is not supported for r   rx   r#   r   r   )	r   r|   r-   r]   r_   r$   r,   r`   r   r.   rM   )r2   ra   r6   rb   rc   rd   re   r   r   r   rf   r5   rg   rh   ri   r   rm   r   r   ro   rp   r   video_get_character_handlerrr   r=   r>   )r   r,   r-   r$   r%   r&   r?   r@   rT   rU   r`   rV   r]   r   r   rH   s                   rI   r   r     s    J<
17<Q1R)/4Et)LJJ|U3t;	

?D9$--- $

= 9"3]33&"*-77 ";; --.AB 	 ";<O;PQ  	&! .=88F# 0-Q.Q 3 	9 	
 )2(E(E(K(K%$@@%"1 3)+'66::h'

 
	
  
$$ 3 (
 	

s   BE3 C$E3 3
F=FFc                   #    [        5       n [        R                  " 5       n	SUS'   [        [        4U UUUUUUS.UD6n
[
        R                  " 5       n[        UR                  U
5      nU	R                  SU5      I Sh  vN n[        R                  " U5      (       a  UI Sh  vN nU$ UnU$  N/ N! [         a  n[        R                  " SUUUUS9eSnAff = f7f)zG
Asynchronously create a video edit job.
Maps to POST /v1/videos/edits
Tr)   r   Nrx   r.   )r2   r3   r4   r   
video_editr8   r9   r:   r;   r<   r=   r5   r>   r   s                   rI   avideo_editr   d  s      J!
%%'#|

 3'#!

 

 &&(#CGGT2"2249JKK}--**H  %H L +
  
$$ 3 (
 	

r   c                    [        5       n UR                  S5      n	UR                  SS5      n
UR                  SS5      SL nUR                  SS5      nUb6  [        U[        5      (       a  [
        R                  " U5      n[        S0 UD6$ Uc%  [        U 5      nUR                  S5      =(       d    S	n[        S0 UD6n[        R                  " S[        R                  " U5      S
9nUc  [        SU 35      eUR                  U5        XS.nU	R!                  SUR                  S5      [#        U5      SU
0UEUS9  [$        R&                  R(                  U	l        [,        R.                  " UU UUUU	UUU=(       d    [0        UUR                  S5      S9$ ! [2         a  n[        R4                  " SUUUUS9eSnAff = f)z8
Create a video edit job.
Maps to POST /v1/videos/edits
rT   rU   Nr)   FTrV   r-   rw   rW   z video edit is not supported for r   rx   r#   r   r   )r   rt   r|   r-   r]   r_   r$   r&   r,   r`   r   r.   rM   )r2   ra   r6   rb   rc   rd   re   r   r   r   r   rf   r5   rg   rh   ri   r   rm   r   r   ro   rp   r   video_edit_handlerrr   r=   r>   )rt   r   r,   r-   r$   r%   r&   r?   r@   rT   rU   r`   rV   r{   r]   r   r   rH   s                     rI   r   r     s    J=
17<Q1R)/4Et)LJJ|U3t;	

?D9$--- $

= 9///&3H=G")++.C"D"P-77 ";; --.AB 	 "?@S?TUVV&!,4G88F# 0-Q.Q 3 	9 	
 )2(<(<(B(B%$77"1 3)+'!66::h'
 	
  
$$ 3 (
 	

s   BF D	F 
F?"F::F?c                   #    [        5       n	 [        R                  " 5       n
SUS'   [        [        4U UUUUUUUS.UD6n[
        R                  " 5       n[        UR                  U5      nU
R                  SU5      I Sh  vN n[        R                  " U5      (       a  UI Sh  vN nU$ UnU$  N/ N! [         a  n[        R                  " SUUU	US9eSnAff = f7f)zM
Asynchronously create a video extension.
Maps to POST /v1/videos/extensions
Tr)   )rt   r   r!   r,   r-   r$   r%   r&   Nrx   r.   )r2   r3   r4   r   video_extensionr8   r9   r:   r;   r<   r=   r5   r>   )rt   r   r!   r,   r-   r$   r%   r&   r?   r@   rA   rC   rD   rE   rF   rG   rH   s                    rI   avideo_extensionr     s       J"
%%'#|
 3'#!
 
 &&(#CGGT2"2249JKK}--**H  %H L +
  
$$ 3 (
 	

sY   CA3B5 B1$B5 &B3'B5 ,C-B5 0C1B5 3B5 5
C?CCCc                    [        5       n	 UR                  S5      n
UR                  SS5      nUR                  SS5      SL nUR                  SS5      nUb6  [        U[        5      (       a  [
        R                  " U5      n[        S0 UD6$ Uc%  [        U 5      nUR                  S5      =(       d    S	n[        S0 UD6n[        R                  " S[        R                  " U5      S
9nUc  [        SU 35      eU	R                  U5        U UUS.nU
R!                  SUR                  S5      [#        U5      SU0UEUS9  [$        R&                  R(                  U
l        [,        R.                  " UU UUUUU
UUU=(       d    [0        UUR                  S5      S9$ ! [2         a  n[        R4                  " SUUU	US9eSnAff = f)z>
Create a video extension.
Maps to POST /v1/videos/extensions
rT   rU   Nr)   FTrV   r-   rw   rW   z%video extension is not supported for )rt   r   r!   rx   r#   r   r   )r   rt   r!   r|   r-   r]   r_   r$   r&   r,   r`   r   r.   rM   )r2   ra   r6   rb   rc   rd   re   r   r   r   r   rf   r5   rg   rh   ri   r   rm   r   r   ro   rp   r   video_extension_handlerrr   r=   r>   )rt   r   r!   r,   r-   r$   r%   r&   r?   r@   rT   rU   r`   rV   r{   r]   r   r   rH   s                      rI   r   r     s     JD
17<Q1R)/4Et)LJJ|U3t;	

?D9$--- $

= 9///&3H=G")++.C"D"P-77 ";; --.AB 	 "78K7LM  	&!  
 	88F# 0-Q.Q 3 	9 	
 )2(A(A(G(G%$<<"1 3)+'!66::h'
 	
  
$$ 3 (
 	

s   BF DF 
G%F==G)
NNNNNX  NNNN)NNNNNN)r   NNNN)	NNNNr   NNNN)NNNr   NNNN)Fr3   r8   rd   	functoolsr   typingr   r   r   r   r   r	   r
   r   r5   litellm.constantsr   r   rr   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__rc   rJ   intr7   floatbytesr~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rM   rP   rI   <module>r      s	       Q Q Q  : H N S G I . 5 4 
 E 7 < (:'; $ ;   +/! /3,0+/Q
Q
C=Q
 i(Q
 c]	Q

 3-Q
 3-Q
 DcN+Q
 $sCx.)Q
 c3h(Q
 Q
 Q
n 
  +/!)-.2,0+/C= i( c]	
 3- 3-  "# DcN+ $sCx.) c3h( t}  sC$% 
& 
  +/!)-.2,0+/ ).C= i( c]	
 3- 3-  "# DcN+ $sCx.) c3h( u~   
*   +/! /3,0+/s
s
C=s
 i(s
 c]	s

 3-s
 3-s
 DcN+s
 $sCx.)s
 c3h(s
 c3#$&s
 s
l   $)-! /3,0+/p
p
e_p
 "#p
 c]	p
 DcN+p
 $sCx.)p
 c3h(p
 	c3o p
 p
h   $)-! /3,0+/B
B
e_B
 "#B
 c]	B
 DcN+B
 $sCx.)B
 c3h(B
 B
 B
L   /3,0+/>
>
>
 DcN+>
 $sCx.)>
 c3h(>
 >
 >
H 
 )-.2,0+/  "#	
 DcN+ $sCx.) c3h( $-  sC$% 
 
 )-.2,0+/ $)  "#	
 DcN+ $sCx.) c3h( %.   
"   /3,0+/c
c
c
 DcN+c
 $sCx.)c
 c3h(c
 c3#$&c
 c
N ! /3,0+/J
C=J
C=J
 C=J
 c]	J
 DcN+J
 $sCx.)J
 c3h(J
 
+J
 J
` 
)-.2,0+/C=C= C= 	
 "# DcN+ $sCx.) c3h(   sCk**+ 
  
)-.2,0+/ #(C=C= C= 	
 "# DcN+ $sCx.) c3h(   
+ 
$  /3,0+/c
C=c
C=c
 C=c
 DcN+c
 $sCx.)c
 c3h(c
 c3[))*,c
 c
N   /3,0+/<
<
 DcN+<
 $sCx.)<
 c3h(<
 <
 <
D 
 )-.2,0+/ "# DcN+	
 $sCx.) c3h( 4=  sC$% 
 
 )-.2,0+/ %* "# DcN+	
 $sCx.) c3h( 5>   
    /3,0+/v
v
 DcN+v
 $sCx.)v
 c3h(v
 c3#$&v
 v
r  .2,0+/3

3
3

 DcN+3
 $sCx.)3
 c3h(3
 3
 3
l  .2,0+/L

L
L

 DcN+L
 $sCx.)L
 c3h(L
 ?Ic3&?@@AL
 L
^  .2,0+/.
.
 DcN+	.

 $sCx.).
 c3h(.
 .
 .
b  .2,0+/J
J
 DcN+	J

 $sCx.)J
 c3h(J
 ?Ic3&?@@AJ
 J
Z  .2,0+/0
0
0

 DcN+0
 $sCx.)0
 c3h(0
 0
 0
f  .2,0+/L
L
L

 DcN+L
 $sCx.)L
 c3h(L
 ;	#sK"7889L
 L
^ 
 .2,0+/2
2
2
 2
 DcN+2
 $sCx.)2
 c3h(2
 2
 2
j 
 .2,0+/T
T
T
 T
 DcN+T
 $sCx.)T
 c3h(T
 ;	#sK"7889T
 T
rP   