
    >|h&                       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 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$ 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/m0Z0 ddlm1Z1  e jd                  e jf                  d      Z4 G d d      Z5 G d  d!      Z6y)"    N   )SyncClientWrapper)RequestOptions)DubbingResource)jsonable_encoder)construct_type)UnprocessableEntityError)HttpValidationError)JSONDecodeError)ApiError)LanguageAddedResponse)SegmentCreateResponse)SegmentUpdateResponse)SegmentDeleteResponse)SegmentTranscriptionResponse)SegmentTranslationResponse)SegmentDubResponse)core)DoDubbingResponse)DubbingMetadataResponse)DeleteDubbingResponseModel)ForbiddenError)NotFoundError)TooEarlyError   )+DubbingGetTranscriptForDubRequestFormatType)AsyncClientWrapper.c                      e Zd ZdefdZdddedej                  e   de	fdZ
ddded	edej                  e   defd
Zedddededededej                  e   dej                  e   defdZeeedddeded	edej                  e   dej                  e   dej                  e   dej                  e   defdZdddededej                  e   defdZdddedej*                  e   dej                  e   defdZdddedej*                  e   dej*                  e   dej                  e   def
dZdddedej*                  e   dej*                  e   dej                  e   def
dZeeeeeeeeeeeedddedej                  ej:                     dej                  e   dej                  e   dej                  e   d ej                  e   d!ej                  e   dej                  e   dej                  e   d"ej                  e   d#ej                  e   d$ej                  e   d%ej                  e   dej                  e   de fd&Z!dddedej                  e   de"fd'Z#dddedej                  e   de$fd(Z%ddded)edej                  e   dejL                  e'   fd*Z(ddd+ded)ed,ej                  e)   dej                  e   def
d-Z*y).DubbingClientclient_wrapperc                    || _         y N_client_wrapperselfr    s     X/var/www/html/test/engine/venv/lib/python3.12/site-packages/elevenlabs/dubbing/client.py__init__zDubbingClient.__init__#   
    -    Nrequest_options
dubbing_idr,   returnc          
      R   | j                   j                  j                  dt        |       d|      }	 d|j                  cxk  rdk  r:n n7t        j                  t        t        t        |j                                     S |j                  dk(  r@t        t        j                  t        t        t        |j                                           |j                         }t        |j                  |      # t        $ r" t        |j                  |j                        w xY w)	a  
        Given a dubbing ID generated from the '/v1/dubbing' endpoint with studio enabled, returns the dubbing resource.

        Parameters
        ----------
        dubbing_id : str
            ID of the dubbing project.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        DubbingResource
            Successful Response

        Examples
        --------
        from elevenlabs import ElevenLabs

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.dubbing.get_dubbing_resource(
            dubbing_id="dubbing_id",
        )
        v1/dubbing/resource/GETmethodr,      ,  type_object_  status_codebodyr$   httpx_clientrequestr   r;   typingcastr   r   jsonr	   r
   r   r   textr&   r-   r,   	_response_response_jsons        r'   get_dubbing_resourcez"DubbingClient.get_dubbing_resource&   s   < ((55=="#3J#?"@A+ > 
	
	Si++1c1{{#"- ) 0  $$+.KK+&"5$-NN$4  '^^-N 9#8#8~NN  	Sy'<'<9>>RR	S   AC; AC; ;+D&languagec          
      j   | j                   j                  j                  dt        |       ddd|iddi|t              }	 d|j
                  cxk  rd	k  r:n n7t        j                  t        t        t        |j                         
            S |j
                  dk(  r@t        t        j                  t        t        t        |j                         
                  |j                         }t        |j
                  |      # t        $ r" t        |j
                  |j                        w xY w)a  
        Adds the given ElevenLab Turbo V2/V2.5 language code to the resource. Does not automatically generate transcripts/translations/audio.

        Parameters
        ----------
        dubbing_id : str
            ID of the dubbing project.

        language : str
            The Target language.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        LanguageAddedResponse
            Successful Response

        Examples
        --------
        from elevenlabs import ElevenLabs

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.dubbing.add_language_to_resource(
            dubbing_id="dubbing_id",
            language="language",
        )
        r0   	/languagePOSTrI   content-typeapplication/jsonr3   rB   headersr,   omitr4   r5   r6   r9   r:   r$   r>   r?   r   OMITr;   r@   rA   r   r   rB   r	   r
   r   r   rC   r&   r-   rI   r,   rE   rF   s         r'   add_language_to_resourcez&DubbingClient.add_language_to_resourcea   s+   D ((55=="#3J#?"@	JH  2 , > 
		Si++1c1{{)"3 ) 0  $$+.KK+&"5$-NN$4  '^^-N 9#8#8~NN  	Sy'<'<9>>RR	S   AD AD +D2rC   r,   
speaker_id
start_timeend_timerC   c          
         | j                   j                  j                  dt        |       dt        |       dd|||dddi|t              }	 d	|j
                  cxk  rd
k  r:n n7t        j                  t        t        t        |j                                     S |j
                  dk(  r@t        t        j                  t        t        t        |j                                           |j                         }t        |j
                  |      # t        $ r" t        |j
                  |j                        w xY w)a  
        Creates a new segment in dubbing resource with a start and end time for the speaker in every available language. Does not automatically generate transcripts/translations/audio.

        Parameters
        ----------
        dubbing_id : str
            ID of the dubbing project.

        speaker_id : str
            ID of the speaker.

        start_time : float

        end_time : float

        text : typing.Optional[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        SegmentCreateResponse
            Successful Response

        Examples
        --------
        from elevenlabs import ElevenLabs

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.dubbing.create_segment_for_speaker(
            dubbing_id="dubbing_id",
            speaker_id="speaker_id",
            start_time=1.1,
            end_time=1.1,
        )
        r0   	/speaker//segmentrL   rY   rZ   rC   rM   rN   rO   r4   r5   r6   r9   r:   r$   r>   r?   r   rS   r;   r@   rA   r   r   rB   r	   r
   r   r   rC   	r&   r-   rX   rY   rZ   rC   r,   rE   rF   s	            r'   create_segment_for_speakerz(DubbingClient.create_segment_for_speaker   s>   b ((55=="#3J#?"@	JZ[eJfIggop($  2 , > 
		Si++1c1{{)"3 ) 0  $$+.KK+&"5$-NN$4  '^^-N 9#8#8~NN  	Sy'<'<9>>RR	Ss   AD AD +E rY   rZ   rC   r,   
segment_idc          
         | j                   j                  j                  dt        |       dt        |       dt        |       d|||dddi|t              }	 d	|j
                  cxk  rd
k  r:n n7t        j                  t        t        t        |j                                     S |j
                  dk(  r@t        t        j                  t        t        t        |j                                           |j                         }	t        |j
                  |	      # t        $ r" t        |j
                  |j                        w xY w)a  
        Modifies a single segment with new text and/or start/end times. Will update the values for only a specific language of a segment. Does not automatically regenerate the dub.

        Parameters
        ----------
        dubbing_id : str
            ID of the dubbing project.

        segment_id : str
            ID of the segment

        language : str
            ID of the language.

        start_time : typing.Optional[float]

        end_time : typing.Optional[float]

        text : typing.Optional[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        SegmentUpdateResponse
            Successful Response

        Examples
        --------
        from elevenlabs import ElevenLabs

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.dubbing.update_segment_language(
            dubbing_id="dubbing_id",
            segment_id="segment_id",
            language="language",
        )
        r0   	/segment//PATCHr^   rM   rN   rO   r4   r5   r6   r9   r:   r$   r>   r?   r   rS   r;   r@   rA   r   r   rB   r	   r
   r   r   rC   
r&   r-   rc   rI   rY   rZ   rC   r,   rE   rF   s
             r'   update_segment_languagez%DubbingClient.update_segment_language   sY   h ((55=="#3J#?"@	JZ[eJfIgghiy  {C  jD  iE  F($  2 , > 
		Si++1c1{{)"3 ) 0  $$+.KK+&"5$-NN$4  '^^-N 9#8#8~NN  	Sy'<'<9>>RR	Ss   AD  *AD   +Ec          
      j   | j                   j                  j                  dt        |       dt        |       d|      }	 d|j                  cxk  rdk  r:n n7t        j                  t        t        t        |j                                     S |j                  dk(  r@t        t        j                  t        t        t        |j                                           |j                         }t        |j                  |	      # t        $ r" t        |j                  |j                  	      w xY w)
a  
        Deletes a single segment from the dubbing.

        Parameters
        ----------
        dubbing_id : str
            ID of the dubbing project.

        segment_id : str
            ID of the segment

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        SegmentDeleteResponse
            Successful Response

        Examples
        --------
        from elevenlabs import ElevenLabs

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.dubbing.delete_segment(
            dubbing_id="dubbing_id",
            segment_id="segment_id",
        )
        r0   re   DELETEr2   r4   r5   r6   r9   r:   r$   r>   r?   r   r;   r@   rA   r   r   rB   r	   r
   r   r   rC   r&   r-   rc   r,   rE   rF   s         r'   delete_segmentzDubbingClient.delete_segmentX  s   D ((55=="#3J#?"@	JZ[eJfIgh+ > 
	
	Si++1c1{{)"3 ) 0  $$+.KK+&"5$-NN$4  '^^-N 9#8#8~NN  	Sy'<'<9>>RR	SrV   segmentsc          
      j   | j                   j                  j                  dt        |       ddd|iddi|t              }	 d|j
                  cxk  rd	k  r:n n7t        j                  t        t        t        |j                         
            S |j
                  dk(  r@t        t        j                  t        t        t        |j                         
                  |j                         }t        |j
                  |      # t        $ r" t        |j
                  |j                        w xY w)a.  
        Regenerate the transcriptions for the specified segments. Does not automatically regenerate translations or dubs.

        Parameters
        ----------
        dubbing_id : str
            ID of the dubbing project.

        segments : typing.Sequence[str]
            Transcribe this specific list of segments.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        SegmentTranscriptionResponse
            Successful Response

        Examples
        --------
        from elevenlabs import ElevenLabs

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.dubbing.transcribe_segments(
            dubbing_id="dubbing_id",
            segments=["segments"],
        )
        r0   /transcriberL   rp   rM   rN   rO   r4   r5   r6   r9   r:   r$   r>   r?   r   rS   r;   r@   rA   r   r   rB   r	   r
   r   r   rC   r&   r-   rp   r,   rE   rF   s         r'   transcribe_segmentsz!DubbingClient.transcribe_segments  s+   L ((55=="#3J#?"@LH  2 , > 
		Si++1c1{{0": ) 0  $$+.KK+&"5$-NN$4  '^^-N 9#8#8~NN  	Sy'<'<9>>RR	SrV   	languagesc          
      l   | j                   j                  j                  dt        |       dd||dddi|t              }	 d|j
                  cxk  rd	k  r:n n7t        j                  t        t        t        |j                         
            S |j
                  dk(  r@t        t        j                  t        t        t        |j                         
                  |j                         }t        |j
                  |      # t        $ r" t        |j
                  |j                        w xY w)a  
        Regenerate the translations for either the entire resource or the specified segments/languages. Will automatically transcribe missing transcriptions. Will not automatically regenerate the dubs.

        Parameters
        ----------
        dubbing_id : str
            ID of the dubbing project.

        segments : typing.Sequence[str]
            Translate only this list of segments.

        languages : typing.Sequence[str]
            Translate only these languages for each segment.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        SegmentTranslationResponse
            Successful Response

        Examples
        --------
        from elevenlabs import ElevenLabs

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.dubbing.translate_segments(
            dubbing_id="dubbing_id",
            segments=["segments"],
            languages=["languages"],
        )
        r0   
/translaterL   rp   rv   rM   rN   rO   r4   r5   r6   r9   r:   r$   r>   r?   r   rS   r;   r@   rA   r   r   rB   r	   r
   r   r   rC   r&   r-   rp   rv   r,   rE   rF   s          r'   translate_segmentsz DubbingClient.translate_segments  s,   V ((55=="#3J#?"@
K$&
  2 , > 
		Si++1c1{{."8 ) 0  $$+.KK+&"5$-NN$4  '^^-N 9#8#8~NN  	Sy'<'<9>>RR	S   AD AD +D3c          
      l   | j                   j                  j                  dt        |       dd||dddi|t              }	 d|j
                  cxk  rd	k  r:n n7t        j                  t        t        t        |j                         
            S |j
                  dk(  r@t        t        j                  t        t        t        |j                         
                  |j                         }t        |j
                  |      # t        $ r" t        |j
                  |j                        w xY w)a  
        Regenerate the dubs for either the entire resource or the specified segments/languages. Will automatically transcribe and translate any missing transcriptions and translations.

        Parameters
        ----------
        dubbing_id : str
            ID of the dubbing project.

        segments : typing.Sequence[str]
            Dub only this list of segments.

        languages : typing.Sequence[str]
            Dub only these languages for each segment.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        SegmentDubResponse
            Successful Response

        Examples
        --------
        from elevenlabs import ElevenLabs

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.dubbing.dub_segments(
            dubbing_id="dubbing_id",
            segments=["segments"],
            languages=["languages"],
        )
        r0   /dubrL   ry   rM   rN   rO   r4   r5   r6   r9   r:   r$   r>   r?   r   rS   r;   r@   rA   r   r   rB   r	   r
   r   r   rC   r{   s          r'   dub_segmentszDubbingClient.dub_segments1  s,   V ((55=="#3J#?"@E$&
  2 , > 
		Si++1c1{{&"0 ) 0  $$+.KK+&"5$-NN$4  '^^-N 9#8#8~NN  	Sy'<'<9>>RR	Sr}   filename
source_urlsource_langnum_speakers	watermarkrY   rZ   highest_resolutiondrop_background_audiouse_profanity_filterdubbing_studior,   target_langr   r   r   r   r   r   r   r   r   r   c                f   | j                   j                  j                  dd||||||||	|
|||dd|i|t              }	 d|j                  cxk  rdk  r:n n7t        j                  t        t        t        |j                                     S |j                  d	k(  r@t        t        j                  t        t        t        |j                                           |j                         }t        |j                  |
      # t        $ r" t        |j                  |j                  
      w xY w)a<  
        Dubs a provided audio or video file into given language.

        Parameters
        ----------
        target_lang : str
            The Target language to dub the content into.

        file : typing.Optional[core.File]
            See core.File for more documentation

        name : typing.Optional[str]
            Name of the dubbing project.

        source_url : typing.Optional[str]
            URL of the source video/audio file.

        source_lang : typing.Optional[str]
            Source language.

        num_speakers : typing.Optional[int]
            Number of speakers to use for the dubbing. Set to 0 to automatically detect the number of speakers

        watermark : typing.Optional[bool]
            Whether to apply watermark to the output video.

        start_time : typing.Optional[int]
            Start time of the source video/audio file.

        end_time : typing.Optional[int]
            End time of the source video/audio file.

        highest_resolution : typing.Optional[bool]
            Whether to use the highest resolution available.

        drop_background_audio : typing.Optional[bool]
            An advanced setting. Whether to drop background audio from the final dub. This can improve dub quality where it's known that audio shouldn't have a background track such as for speeches or monologues.

        use_profanity_filter : typing.Optional[bool]
            [BETA] Whether transcripts should have profanities censored with the words '[censored]'

        dubbing_studio : typing.Optional[bool]
            Whether to prepare dub for edits in dubbing studio or edits as a dubbing resource.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        DoDubbingResponse
            Successful Response

        Examples
        --------
        from elevenlabs import ElevenLabs

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.dubbing.dub_a_video_or_an_audio_file(
            target_lang="target_lang",
        )
        
v1/dubbingrL   r   r   r   r   r   r   rY   rZ   r   r   r   r   r   r3   datafilesr,   rQ   r4   r5   r6   r9   r:   r$   r>   r?   rS   r;   r@   rA   r   r   rB   r	   r
   r   r   rC   r&   r   r   r   r   r   r   r   rY   rZ   r   r   r   r   r,   rE   rF   s                    r'   dub_a_video_or_an_audio_filez*DubbingClient.dub_a_video_or_an_audio_file  s9   b ((55==(** ,&($&8)>(<"0  ,+ > 
	.	Si++1c1{{%"/ ) 0  $$+.KK+&"5$-NN$4  '^^-N 9#8#8~NN  	Sy'<'<9>>RR	Ss    AD AD +D0c          
      R   | j                   j                  j                  dt        |       d|      }	 d|j                  cxk  rdk  r:n n7t        j                  t        t        t        |j                                     S |j                  dk(  r@t        t        j                  t        t        t        |j                                           |j                         }t        |j                  |      # t        $ r" t        |j                  |j                        w xY w)	a  
        Returns metadata about a dubbing project, including whether it's still in progress or not

        Parameters
        ----------
        dubbing_id : str
            ID of the dubbing project.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        DubbingMetadataResponse
            Successful Response

        Examples
        --------
        from elevenlabs import ElevenLabs

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.dubbing.get_dubbing_project_metadata(
            dubbing_id="dubbing_id",
        )
        v1/dubbing/r1   r2   r4   r5   r6   r9   r:   r$   r>   r?   r   r;   r@   rA   r   r   rB   r	   r
   r   r   rC   rD   s        r'   get_dubbing_project_metadataz*DubbingClient.get_dubbing_project_metadata  s   < ((55==*:678+ > 
	
	Si++1c1{{+"5 ) 0  $$+.KK+&"5$-NN$4  '^^-N 9#8#8~NN  	Sy'<'<9>>RR	SrH   c          
      R   | j                   j                  j                  dt        |       d|      }	 d|j                  cxk  rdk  r:n n7t        j                  t        t        t        |j                                     S |j                  dk(  r@t        t        j                  t        t        t        |j                                           |j                         }t        |j                  |      # t        $ r" t        |j                  |j                        w xY w)	aU  
        Deletes a dubbing project.

        Parameters
        ----------
        dubbing_id : str
            ID of the dubbing project.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        DeleteDubbingResponseModel
            Successful Response

        Examples
        --------
        from elevenlabs import ElevenLabs

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.dubbing.delete_dubbing_project(
            dubbing_id="dubbing_id",
        )
        r   rl   r2   r4   r5   r6   r9   r:   r$   r>   r?   r   r;   r@   rA   r   r   rB   r	   r
   r   r   rC   rD   s        r'   delete_dubbing_projectz$DubbingClient.delete_dubbing_project<  s   < ((55==*:678+ > 
	
	Si++1c1{{."8 ) 0  $$+.KK+&"5$-NN$4  '^^-N 9#8#8~NN  	Sy'<'<9>>RR	SrH   language_codec             #     K   | j                   j                  j                  dt        |       dt        |       d|      5 }	 d|j                  cxk  rdk  r>n n;||j                  dd	      nd	}|j                  |
      D ]  }|  	 ddd       y|j                          |j                  dk(  rvt        t        j                  t        j                  t        j                     t        t        j                  t        j                     |j                                           |j                  dk(  rvt        t        j                  t        j                  t        j                     t        t        j                  t        j                     |j                                           |j                  dk(  r@t!        t        j                  t"        t        t"        |j                                           |j                  dk(  rvt%        t        j                  t        j                  t        j                     t        t        j                  t        j                     |j                                           |j                         }t)        |j                  |      # t&        $ r" t)        |j                  |j*                        w xY w# 1 sw Y   yxY ww)ad  
        Returns dubbed file as a streamed file. Videos will be returned in MP4 format and audio only dubs will be returned in MP3.

        Parameters
        ----------
        dubbing_id : str
            ID of the dubbing project.

        language_code : str
            ID of the language.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration. You can pass in configuration such as `chunk_size`, and more to customize the request and response.

        Yields
        ------
        typing.Iterator[bytes]
            The dubbed audio or video file
        r   /audio/r1   r2   r4   r5   N
chunk_size   r     r6     r9     r:   )r$   r>   streamr   r;   get
iter_bytesreadr   r@   rA   OptionalAnyr   rB   r   r	   r
   r   r   r   rC   r&   r-   r   r,   rE   _chunk_size_chunkrF   s           r'   get_dubbed_filezDubbingClient.get_dubbed_filew  sq    , !!..55*:67w?OP]?^>_`+ 6 
 7	S 1W)//5#5M\Mh/"5"5lD"InrK"+"6"6+"6"N %$%7	S 7	S  ((C/("OOFJJ7*&,oofjj&A(1(8  ((C/'"OOFJJ7*&,oofjj&A(1(8  ((C/2/*&9(1(8  ((C/'"OOFJJ7*&,oofjj&A(1(8  "+!1 y'<'<>RR # W9+@+@y~~VVWk7	S 7	Ss>   AK'KA	J-	K'G>J-K-+KKK$ K'format_typer,   r   c          
         | j                   j                  j                  dt        |       dt        |       dd|i|      }	 d|j                  cxk  rdk  r:n n7t        j                  t        t        t        |j                                     S |j                  d	k(  rvt        t        j                  t
        j                  t
        j                     t        t
        j                  t
        j                     |j                                           |j                  d
k(  rvt        t        j                  t
        j                  t
        j                     t        t
        j                  t
        j                     |j                                           |j                  dk(  r@t        t        j                  t        t        t        |j                                           |j                  dk(  rvt!        t        j                  t
        j                  t
        j                     t        t
        j                  t
        j                     |j                                           |j                         }t%        |j                  |      # t"        $ r" t%        |j                  |j&                        w xY w)ab  
        Returns transcript for the dub as an SRT or WEBVTT file.

        Parameters
        ----------
        dubbing_id : str
            ID of the dubbing project.

        language_code : str
            ID of the language.

        format_type : typing.Optional[DubbingGetTranscriptForDubRequestFormatType]
            Format to use for the subtitle file, either 'srt' or 'webvtt'

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        str
            Successful Response

        Examples
        --------
        from elevenlabs import ElevenLabs

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.dubbing.get_transcript_for_dub(
            dubbing_id="dubbing_id",
            language_code="language_code",
        )
        r   /transcript/r1   r   r3   paramsr,   r4   r5   r6   r   r   r9   r   r:   r$   r>   r?   r   r;   r@   rA   strr   rB   r   r   r   r   r	   r
   r   r   r   rC   r&   r-   r   r   r,   rE   rF   s          r'   get_transcript_for_dubz$DubbingClient.get_transcript_for_dub  s8   T ((55==*:67|DTUbDcCde{ , > 
	3	Si++1c1{{"! ) 0  $$+$KK

3&"(//&**"=$-NN$4  $$+#KK

3&"(//&**"=$-NN$4  $$+.KK+&"5$-NN$4  $$+#KK

3&"(//&**"=$-NN$4  '^^-N 9#8#8~NN  	Sy'<'<9>>RR	Ss   AJ G.J +K)+__name__
__module____qualname__r   r(   r   r@   r   r   r   rG   r   rU   rS   floatr   ra   r   rj   r   ro   Sequencer   ru   r   r|   r   r   r   Fileintboolr   r   r   r   r   r   Iteratorbytesr   r   r    r*   r'   r   r   "   sH   .*; . VZ9O9O39??>3R9O	9Ox eiDODO,/DOBH//R`BaDO	DOZ &*;?UOUO UO
 UO UO ooc"UO  8UO 
UOz .2+/%);?XOXO XO 	XO OOE*XO //%(XO ooc"XO  8XO 
XOv gk=O=O+.=ODJOOTbDc=O	=OH <@HOHO //#&	HO
  8HO 
&HO` <@NONO //#&	NO
 ??3'NO  8NO 
$NOl <@NONO //#&	NO
 ??3'NO  8NO 
NOh ,0%)+/,0-1+/+/)-487;6:04;?!~O ~O oodii(	~O
 ooc"~O OOC(~O __S)~O ooc*~O ??4(~O OOC(~O //#&~O #OOD1~O  &t4~O %ood3~O -~O   8!~O" 
#~OB VZ9O9O39??>3R9O	 9Ox VZ9O9O39??>3R9O	#9Ox jnMSMS.1MSGMWeGfMS		MSh UY;?fOfO fO
 __%PQfO  8fO 
fOr*   r   c                      e Zd ZdefdZdddedej                  e   de	fdZ
ddded	edej                  e   defd
Zedddededededej                  e   dej                  e   defdZeeedddeded	edej                  e   dej                  e   dej                  e   dej                  e   defdZdddededej                  e   defdZdddedej*                  e   dej                  e   defdZdddedej*                  e   dej*                  e   dej                  e   def
dZdddedej*                  e   dej*                  e   dej                  e   def
dZeeeeeeeeeeeedddedej                  ej:                     dej                  e   dej                  e   dej                  e   d ej                  e   d!ej                  e   dej                  e   dej                  e   d"ej                  e   d#ej                  e   d$ej                  e   d%ej                  e   dej                  e   de fd&Z!dddedej                  e   de"fd'Z#dddedej                  e   de$fd(Z%ddded)edej                  e   dejL                  e'   fd*Z(ddd+ded)ed,ej                  e)   dej                  e   def
d-Z*y).AsyncDubbingClientr    c                    || _         y r"   r#   r%   s     r'   r(   zAsyncDubbingClient.__init__0  r)   r*   Nr+   r-   r,   r.   c          
      n  K   | j                   j                  j                  dt        |       d|       d{   }	 d|j                  cxk  rdk  r:n n7t        j                  t        t        t        |j                                     S |j                  dk(  r@t        t        j                  t        t        t        |j                                           |j                         }t        |j                  |	      7 # t        $ r" t        |j                  |j                  	      w xY ww)
a  
        Given a dubbing ID generated from the '/v1/dubbing' endpoint with studio enabled, returns the dubbing resource.

        Parameters
        ----------
        dubbing_id : str
            ID of the dubbing project.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        DubbingResource
            Successful Response

        Examples
        --------
        import asyncio

        from elevenlabs import AsyncElevenLabs

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.dubbing.get_dubbing_resource(
                dubbing_id="dubbing_id",
            )


        asyncio.run(main())
        r0   r1   r2   Nr4   r5   r6   r9   r:   r=   rD   s        r'   rG   z'AsyncDubbingClient.get_dubbing_resource3  s    L ..;;CC"#3J#?"@A+ D 
 
	
	Si++1c1{{#"- ) 0  $$+.KK+&"5$-NN$4  '^^-N 9#8#8~NN7
2  	Sy'<'<9>>RR	S5   8D5DD5 AD D5AD .D5+D22D5rI   c          
        K   | j                   j                  j                  dt        |       ddd|iddi|t               d{   }	 d	|j
                  cxk  rd
k  r:n n7t        j                  t        t        t        |j                                     S |j
                  dk(  r@t        t        j                  t        t        t        |j                                           |j                         }t        |j
                  |      7 # t        $ r" t        |j
                  |j                        w xY ww)a  
        Adds the given ElevenLab Turbo V2/V2.5 language code to the resource. Does not automatically generate transcripts/translations/audio.

        Parameters
        ----------
        dubbing_id : str
            ID of the dubbing project.

        language : str
            The Target language.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        LanguageAddedResponse
            Successful Response

        Examples
        --------
        import asyncio

        from elevenlabs import AsyncElevenLabs

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.dubbing.add_language_to_resource(
                dubbing_id="dubbing_id",
                language="language",
            )


        asyncio.run(main())
        r0   rK   rL   rI   rM   rN   rO   Nr4   r5   r6   r9   r:   rR   rT   s         r'   rU   z+AsyncDubbingClient.add_language_to_resourcev  s;    T ..;;CC"#3J#?"@	JH  2 , D 
 
		Si++1c1{{)"3 ) 0  $$+.KK+&"5$-NN$4  '^^-N 9#8#8~NNE
@  	Sy'<'<9>>RR	S8   AEDEAD EAD :E+D>>ErW   rX   rY   rZ   rC   c          
        K   | j                   j                  j                  dt        |       dt        |       dd|||dddi|t               d	{   }	 d
|j
                  cxk  rdk  r:n n7t        j                  t        t        t        |j                                     S |j
                  dk(  r@t        t        j                  t        t        t        |j                                           |j                         }t        |j
                  |      7 # t        $ r" t        |j
                  |j                        w xY ww)a[  
        Creates a new segment in dubbing resource with a start and end time for the speaker in every available language. Does not automatically generate transcripts/translations/audio.

        Parameters
        ----------
        dubbing_id : str
            ID of the dubbing project.

        speaker_id : str
            ID of the speaker.

        start_time : float

        end_time : float

        text : typing.Optional[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        SegmentCreateResponse
            Successful Response

        Examples
        --------
        import asyncio

        from elevenlabs import AsyncElevenLabs

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.dubbing.create_segment_for_speaker(
                dubbing_id="dubbing_id",
                speaker_id="speaker_id",
                start_time=1.1,
                end_time=1.1,
            )


        asyncio.run(main())
        r0   r\   r]   rL   r^   rM   rN   rO   Nr4   r5   r6   r9   r:   r_   r`   s	            r'   ra   z-AsyncDubbingClient.create_segment_for_speaker  sN    r ..;;CC"#3J#?"@	JZ[eJfIggop($  2 , D 
 
		Si++1c1{{)"3 ) 0  $$+.KK+&"5$-NN$4  '^^-N 9#8#8~NNI
D  	Sy'<'<9>>RR	Ss8   AEDEAD! (E)AD! E!+EErb   rc   c          
        K   | j                   j                  j                  dt        |       dt        |       dt        |       d|||dddi|t               d	{   }	 d
|j
                  cxk  rdk  r:n n7t        j                  t        t        t        |j                                     S |j
                  dk(  r@t        t        j                  t        t        t        |j                                           |j                         }	t        |j
                  |	      7 # t        $ r" t        |j
                  |j                        w xY ww)a  
        Modifies a single segment with new text and/or start/end times. Will update the values for only a specific language of a segment. Does not automatically regenerate the dub.

        Parameters
        ----------
        dubbing_id : str
            ID of the dubbing project.

        segment_id : str
            ID of the segment

        language : str
            ID of the language.

        start_time : typing.Optional[float]

        end_time : typing.Optional[float]

        text : typing.Optional[str]

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        SegmentUpdateResponse
            Successful Response

        Examples
        --------
        import asyncio

        from elevenlabs import AsyncElevenLabs

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.dubbing.update_segment_language(
                dubbing_id="dubbing_id",
                segment_id="segment_id",
                language="language",
            )


        asyncio.run(main())
        r0   re   rf   rg   r^   rM   rN   rO   Nr4   r5   r6   r9   r:   rh   ri   s
             r'   rj   z*AsyncDubbingClient.update_segment_language#  si    x ..;;CC"#3J#?"@	JZ[eJfIgghiy  {C  jD  iE  F($  2 , D 
 
		Si++1c1{{)"3 ) 0  $$+.KK+&"5$-NN$4  '^^-N 9#8#8~NNI
D  	Sy'<'<9>>RR	Ss8   AED* E%AD, 3E4AD, E,+EEc          
        K   | j                   j                  j                  dt        |       dt        |       d|       d{   }	 d|j                  cxk  rdk  r:n n7t        j                  t        t        t        |j                                     S |j                  d	k(  r@t        t        j                  t        t        t        |j                                           |j                         }t        |j                  |
      7 # t        $ r" t        |j                  |j                  
      w xY ww)a/  
        Deletes a single segment from the dubbing.

        Parameters
        ----------
        dubbing_id : str
            ID of the dubbing project.

        segment_id : str
            ID of the segment

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        SegmentDeleteResponse
            Successful Response

        Examples
        --------
        import asyncio

        from elevenlabs import AsyncElevenLabs

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.dubbing.delete_segment(
                dubbing_id="dubbing_id",
                segment_id="segment_id",
            )


        asyncio.run(main())
        r0   re   rl   r2   Nr4   r5   r6   r9   r:   rm   rn   s         r'   ro   z!AsyncDubbingClient.delete_segment  s)    T ..;;CC"#3J#?"@	JZ[eJfIgh+ D 
 
	
	Si++1c1{{)"3 ) 0  $$+.KK+&"5$-NN$4  '^^-N 9#8#8~NN7
2  	Sy'<'<9>>RR	Sr   rp   c          
        K   | j                   j                  j                  dt        |       ddd|iddi|t               d{   }	 d	|j
                  cxk  rd
k  r:n n7t        j                  t        t        t        |j                                     S |j
                  dk(  r@t        t        j                  t        t        t        |j                                           |j                         }t        |j
                  |      7 # t        $ r" t        |j
                  |j                        w xY ww)a  
        Regenerate the transcriptions for the specified segments. Does not automatically regenerate translations or dubs.

        Parameters
        ----------
        dubbing_id : str
            ID of the dubbing project.

        segments : typing.Sequence[str]
            Transcribe this specific list of segments.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        SegmentTranscriptionResponse
            Successful Response

        Examples
        --------
        import asyncio

        from elevenlabs import AsyncElevenLabs

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.dubbing.transcribe_segments(
                dubbing_id="dubbing_id",
                segments=["segments"],
            )


        asyncio.run(main())
        r0   rr   rL   rp   rM   rN   rO   Nr4   r5   r6   r9   r:   rs   rt   s         r'   ru   z&AsyncDubbingClient.transcribe_segments  s;    \ ..;;CC"#3J#?"@LH  2 , D 
 
		Si++1c1{{0": ) 0  $$+.KK+&"5$-NN$4  '^^-N 9#8#8~NNE
@  	Sy'<'<9>>RR	Sr   rv   c          
        K   | j                   j                  j                  dt        |       dd||dddi|t               d{   }	 d	|j
                  cxk  rd
k  r:n n7t        j                  t        t        t        |j                                     S |j
                  dk(  r@t        t        j                  t        t        t        |j                                           |j                         }t        |j
                  |      7 # t        $ r" t        |j
                  |j                        w xY ww)a  
        Regenerate the translations for either the entire resource or the specified segments/languages. Will automatically transcribe missing transcriptions. Will not automatically regenerate the dubs.

        Parameters
        ----------
        dubbing_id : str
            ID of the dubbing project.

        segments : typing.Sequence[str]
            Translate only this list of segments.

        languages : typing.Sequence[str]
            Translate only these languages for each segment.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        SegmentTranslationResponse
            Successful Response

        Examples
        --------
        import asyncio

        from elevenlabs import AsyncElevenLabs

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.dubbing.translate_segments(
                dubbing_id="dubbing_id",
                segments=["segments"],
                languages=["languages"],
            )


        asyncio.run(main())
        r0   rx   rL   ry   rM   rN   rO   Nr4   r5   r6   r9   r:   rz   r{   s          r'   r|   z%AsyncDubbingClient.translate_segments  s<    f ..;;CC"#3J#?"@
K$&
  2 , D 
 
		Si++1c1{{."8 ) 0  $$+.KK+&"5$-NN$4  '^^-N 9#8#8~NNG
B  	Sy'<'<9>>RR	S8   AEDEAD EAD ;E+D??Ec          
        K   | j                   j                  j                  dt        |       dd||dddi|t               d{   }	 d	|j
                  cxk  rd
k  r:n n7t        j                  t        t        t        |j                                     S |j
                  dk(  r@t        t        j                  t        t        t        |j                                           |j                         }t        |j
                  |      7 # t        $ r" t        |j
                  |j                        w xY ww)aU  
        Regenerate the dubs for either the entire resource or the specified segments/languages. Will automatically transcribe and translate any missing transcriptions and translations.

        Parameters
        ----------
        dubbing_id : str
            ID of the dubbing project.

        segments : typing.Sequence[str]
            Dub only this list of segments.

        languages : typing.Sequence[str]
            Dub only these languages for each segment.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        SegmentDubResponse
            Successful Response

        Examples
        --------
        import asyncio

        from elevenlabs import AsyncElevenLabs

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.dubbing.dub_segments(
                dubbing_id="dubbing_id",
                segments=["segments"],
                languages=["languages"],
            )


        asyncio.run(main())
        r0   r   rL   ry   rM   rN   rO   Nr4   r5   r6   r9   r:   r   r{   s          r'   r   zAsyncDubbingClient.dub_segmentsv  s<    f ..;;CC"#3J#?"@E$&
  2 , D 
 
		Si++1c1{{&"0 ) 0  $$+.KK+&"5$-NN$4  '^^-N 9#8#8~NNG
B  	Sy'<'<9>>RR	Sr   r   r   r   r   r   r   r   r   r   r   r   r   c                  K   | j                   j                  j                  dd||||||||	|
|||dd|i|t               d{   }	 d|j                  cxk  rdk  r:n n7t        j                  t        t        t        |j                         	            S |j                  d
k(  r@t        t        j                  t        t        t        |j                         	                  |j                         }t        |j                  |      7 # t        $ r" t        |j                  |j                        w xY ww)a  
        Dubs a provided audio or video file into given language.

        Parameters
        ----------
        target_lang : str
            The Target language to dub the content into.

        file : typing.Optional[core.File]
            See core.File for more documentation

        name : typing.Optional[str]
            Name of the dubbing project.

        source_url : typing.Optional[str]
            URL of the source video/audio file.

        source_lang : typing.Optional[str]
            Source language.

        num_speakers : typing.Optional[int]
            Number of speakers to use for the dubbing. Set to 0 to automatically detect the number of speakers

        watermark : typing.Optional[bool]
            Whether to apply watermark to the output video.

        start_time : typing.Optional[int]
            Start time of the source video/audio file.

        end_time : typing.Optional[int]
            End time of the source video/audio file.

        highest_resolution : typing.Optional[bool]
            Whether to use the highest resolution available.

        drop_background_audio : typing.Optional[bool]
            An advanced setting. Whether to drop background audio from the final dub. This can improve dub quality where it's known that audio shouldn't have a background track such as for speeches or monologues.

        use_profanity_filter : typing.Optional[bool]
            [BETA] Whether transcripts should have profanities censored with the words '[censored]'

        dubbing_studio : typing.Optional[bool]
            Whether to prepare dub for edits in dubbing studio or edits as a dubbing resource.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        DoDubbingResponse
            Successful Response

        Examples
        --------
        import asyncio

        from elevenlabs import AsyncElevenLabs

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.dubbing.dub_a_video_or_an_audio_file(
                target_lang="target_lang",
            )


        asyncio.run(main())
        r   rL   r   r   r   Nr4   r5   r6   r9   r:   r   r   s                    r'   r   z/AsyncDubbingClient.dub_a_video_or_an_audio_file  sI    r ..;;CC(** ,&($&8)>(<"0  ,+ D 
 
	.	Si++1c1{{%"/ ) 0  $$+.KK+&"5$-NN$4  '^^-N 9#8#8~NN[
V  	Sy'<'<9>>RR	Ss8   AD?DD?
AD D?AD 8D?+D<<D?c          
      n  K   | j                   j                  j                  dt        |       d|       d{   }	 d|j                  cxk  rdk  r:n n7t        j                  t        t        t        |j                                     S |j                  dk(  r@t        t        j                  t        t        t        |j                                           |j                         }t        |j                  |	      7 # t        $ r" t        |j                  |j                  	      w xY ww)
a  
        Returns metadata about a dubbing project, including whether it's still in progress or not

        Parameters
        ----------
        dubbing_id : str
            ID of the dubbing project.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        DubbingMetadataResponse
            Successful Response

        Examples
        --------
        import asyncio

        from elevenlabs import AsyncElevenLabs

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.dubbing.get_dubbing_project_metadata(
                dubbing_id="dubbing_id",
            )


        asyncio.run(main())
        r   r1   r2   Nr4   r5   r6   r9   r:   r   rD   s        r'   r   z/AsyncDubbingClient.get_dubbing_project_metadataV  s    L ..;;CC*:678+ D 
 
	
	Si++1c1{{+"5 ) 0  $$+.KK+&"5$-NN$4  '^^-N 9#8#8~NN7
2  	Sy'<'<9>>RR	Sr   c          
      n  K   | j                   j                  j                  dt        |       d|       d{   }	 d|j                  cxk  rdk  r:n n7t        j                  t        t        t        |j                                     S |j                  dk(  r@t        t        j                  t        t        t        |j                                           |j                         }t        |j                  |	      7 # t        $ r" t        |j                  |j                  	      w xY ww)
a  
        Deletes a dubbing project.

        Parameters
        ----------
        dubbing_id : str
            ID of the dubbing project.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        DeleteDubbingResponseModel
            Successful Response

        Examples
        --------
        import asyncio

        from elevenlabs import AsyncElevenLabs

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.dubbing.delete_dubbing_project(
                dubbing_id="dubbing_id",
            )


        asyncio.run(main())
        r   rl   r2   Nr4   r5   r6   r9   r:   r   rD   s        r'   r   z)AsyncDubbingClient.delete_dubbing_project  s    L ..;;CC*:678+ D 
 
	
	Si++1c1{{."8 ) 0  $$+.KK+&"5$-NN$4  '^^-N 9#8#8~NN7
2  	Sy'<'<9>>RR	Sr   r   c               6  K   | j                   j                  j                  dt        |       dt        |       d|      4 d{   }	 d|j                  cxk  rdk  r:n n7||j                  dd	      nd	}|j                  |
      2 3 d{   }| |j                          d{    |j                  dk(  rvt        t        j                  t        j                  t        j                     t        t        j                  t        j                     |j                                           |j                  dk(  rvt        t        j                  t        j                  t        j                     t        t        j                  t        j                     |j                                           |j                  dk(  r@t!        t        j                  t"        t        t"        |j                                           |j                  dk(  rvt%        t        j                  t        j                  t        j                     t        t        j                  t        j                     |j                                           |j                         }t)        |j                  |      7 r7 +6 	 ddd      d{  7   y7 $# t&        $ r" t)        |j                  |j*                        w xY w# 1 d{  7  sw Y   yxY ww)ai  
        Returns dubbed file as a streamed file. Videos will be returned in MP4 format and audio only dubs will be returned in MP3.

        Parameters
        ----------
        dubbing_id : str
            ID of the dubbing project.

        language_code : str
            ID of the language.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration. You can pass in configuration such as `chunk_size`, and more to customize the request and response.

        Yields
        ------
        typing.AsyncIterator[bytes]
            The dubbed audio or video file
        r   r   r1   r2   Nr4   r5   r   r   r   r   r6   r   r9   r   r:   )r$   r>   r   r   r;   r   aiter_bytesareadr   r@   rA   r   r   r   rB   r   r	   r
   r   r   r   rC   r   s           r'   r   z"AsyncDubbingClient.get_dubbed_file  s    , ''44;;*:67w?OP]?^>_`+ < 
 7	S 7	S 1W)//5#5M\Mh/"5"5lD"InrK(1(=(=(=(U % %f$oo'''((C/("OOFJJ7*&,oofjj&A(1(8  ((C/'"OOFJJ7*&,oofjj&A(1(8  ((C/2/*&9(1(8  ((C/'"OOFJJ7*&,oofjj&A(1(8  "+!1 y'<'<>RRo7	S%(U7	S 7	S 7	S (T # W9+@+@y~~VVWk7	S 7	S 7	Ss   ALJ9LLA KJ?J<J?K/K0G2K"L9L<J??KLKLK+LLL
LLLr   r   c          
        K   | j                   j                  j                  dt        |       dt        |       dd|i|       d{   }	 d|j                  cxk  rdk  r:n n7t        j                  t        t        t        |j                         	            S |j                  d
k(  rvt        t        j                  t
        j                  t
        j                     t        t
        j                  t
        j                     |j                         	                  |j                  dk(  rvt        t        j                  t
        j                  t
        j                     t        t
        j                  t
        j                     |j                         	                  |j                  dk(  r@t        t        j                  t        t        t        |j                         	                  |j                  dk(  rvt!        t        j                  t
        j                  t
        j                     t        t
        j                  t
        j                     |j                         	                  |j                         }t%        |j                  |      7 Z# t"        $ r" t%        |j                  |j&                        w xY ww)a  
        Returns transcript for the dub as an SRT or WEBVTT file.

        Parameters
        ----------
        dubbing_id : str
            ID of the dubbing project.

        language_code : str
            ID of the language.

        format_type : typing.Optional[DubbingGetTranscriptForDubRequestFormatType]
            Format to use for the subtitle file, either 'srt' or 'webvtt'

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        str
            Successful Response

        Examples
        --------
        import asyncio

        from elevenlabs import AsyncElevenLabs

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.dubbing.get_transcript_for_dub(
                dubbing_id="dubbing_id",
                language_code="language_code",
            )


        asyncio.run(main())
        r   r   r1   r   r   Nr4   r5   r6   r   r   r9   r   r:   r   r   s          r'   r   z)AsyncDubbingClient.get_transcript_for_dub+  sH    d ..;;CC*:67|DTUbDcCde{ , D 
 
	3	Si++1c1{{"! ) 0  $$+$KK

3&"(//&**"=$-NN$4  $$+#KK

3&"(//&**"=$-NN$4  $$+.KK+&"5$-NN$4  $$+#KK

3&"(//&**"=$-NN$4  '^^-N 9#8#8~NNy
t  	Sy'<'<9>>RR	Ss8   AK	J#
KAJ& KG.J& K&+KK)+r   r   r   r   r(   r   r@   r   r   r   rG   r   rU   rS   r   r   ra   r   rj   r   ro   r   r   ru   r   r|   r   r   r   r   r   r   r   r   r   r   r   r   AsyncIteratorr   r   r   r   r   r*   r'   r   r   /  s[   .*< . VZAOAO39??>3RAO	AOH eiLOLO,/LOBH//R`BaLO	LOj &*;?]O]O ]O
 ]O ]O ooc"]O  8]O 
]OJ .2+/%);?`O`O `O 	`O OOE*`O //%(`O ooc"`O  8`O 
`OF gkEOEO+.EODJOOTbDcEO	EOX <@POPO //#&	PO
  8PO 
&POp <@VOVO //#&	VO
 ??3'VO  8VO 
$VO| <@VOVO //#&	VO
 ??3'VO  8VO 
VOx ,0%)+/,0-1+/+/)-487;6:04;?!FO FO oodii(	FO
 ooc"FO OOC(FO __S)FO ooc*FO ??4(FO OOC(FO //#&FO #OOD1FO  &t4FO %ood3FO -FO   8!FO" 
#FOR VZAOAO39??>3RAO	 AOH VZAOAO39??>3RAO	#AOH jnMSMS.1MSGMWeGfMS			e	$MSh UY;?nOnO nO
 __%PQnO  8nO 
nOr*   r   )7r@   core.client_wrapperr   core.request_optionsr   types.dubbing_resourcer   core.jsonable_encoderr   core.unchecked_base_modelr   !errors.unprocessable_entity_errorr	   types.http_validation_errorr
   json.decoderr   core.api_errorr   types.language_added_responser   types.segment_create_responser   types.segment_update_responser   types.segment_delete_responser   $types.segment_transcription_responser   "types.segment_translation_responser   types.segment_dub_responser    r   types.do_dubbing_responser   types.dubbing_metadata_responser   #types.delete_dubbing_response_modelr   errors.forbidden_errorr   errors.not_found_errorr   errors.too_early_errorr   8types.dubbing_get_transcript_for_dub_request_format_typer   r   rA   r   rS   r   r   r   r*   r'   <module>r      s     3 1 4 4 6 H = ( % A A A A O K ;  9 E L 3 2 2 q 4 v{{6::s#JO JOZ jO jOr*   