
    ^j                     <   d dl Z d dlZd dlZd dlZd dlZd dlmZmZ d dlm	Z	  e	e
                                          j        d         Zedz  Zedz  Zedz  Zedz  Zed	z  Zed
z  Zedz  ZdZd Zd Zd Zd Zedk    r ej         e                       dS dS )    N)datetimetimezone)Path   zlog/tts-verification.jsonzlog/tts-pronunciation.jsonzimage/layout-manifest.jsonzaudio/story-full.wavzimage/layout-1920x1080.pngzoutput/footage/footage.mp4zlog/footage-submission.jsonzhttp://192.168.1.104:8022c                    t          j                    }|                     d          5 t          fdd          D ]}|                    |           	 d d d            n# 1 swxY w Y   |                                S )Nrbc                  .                          d          S )Ni   )read)handles   script/submit-footage.py<lambda>zsha.<locals>.<lambda>   s    &++o">">     r   )hashlibsha256openiterupdate	hexdigest)pathdigestblockr   s      @r   shar      s    ^F	4 !F>>>>DD 	! 	!EMM%    	!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! s   ,A##A'*A'c                     t          j        dddddddt          |           gddd	          }t          |j                                                  S )
Nffprobez-verrorz-show_entrieszformat=durationz-ofzdefault=nw=1:nk=1T)capture_outputtextcheck)
subprocessrunstrfloatstdoutstrip)r   results     r   durationr&      sw    ^YgHY[`buwz{  xA  xA  B  SW  ^b  jn  o  o  oF$$&&'''r   c                     t           j                            t          dz   | z   d          5 }t	          j        |          cd d d            S # 1 swxY w Y   d S )Nz /v1/footage-render-huyenan/jobs/   timeout)urllibrequesturlopenBASEjsonload)job_idresponses     r   get_jobr3   "   s    			11F:B 
  
 
 #	y""# # # # # # # # # # # # # # # # # #s   AAAc                  h   t                                           rdt                                          rKt                                          r2t                                          rt
                                          st          dt          j                   dS t          j
        t                               d                    } t          j
        t                              d                    }t          j
        t                              d                    }|                     d          }|                     d          dusQ|                     d	          dus9|                    d          dus!|                    d
          dus	|                     d          |                    d          k    s|                     d          |                    d          k    s|                     d          t          t                    k    s|                     d          t          t                    k    s[|                    d          dusD|                    di                               d          dus|                    d          |k    rt          dt          j                   dS t          t
                    }t          t                    }t                                          r)t          j
        t                              d                    }|                    d          |k    sG|                    d          |k    s.|                    d          |k    s|                    d          st          dt          j                   dS t          |d                   }|                    d          }|dv r0t          t          j        |d         |d|dd                     dS t          d| dt          j                   dS t"                                          rt          dt          j                   dS t$          j                            t*          dz   d           5 }	t          j        |	          }
d d d            n# 1 swxY w Y   |
                    d          d!k    s|
                    d"          durt          d#t          j                   dS i d$t/          t
                    d%d&d'd(d)dd*t/          t                    d+t/          t"                    d,d-d.dd/d0d1d2d3d4d5d6d7dd8d9d:d2d;d"d<d=d>d?i}t$          j                            t*          d@z   t          j        |                                          dAdBidCD          }t$          j                            |d4           5 }	t          j        |	          }d d d            n# 1 swxY w Y   |                    d          }|r|                    d          dEvrt          dFt          j                   dS dd|||                    d          t*          t/          t"                              t6                              ||||                    d          t          t                    t9          t                    t;          j        t>          j                   !                                dG}t          j"        #                    ddH           t          $                    t          j        |ddIJ          dKz   d           t          t          j        ||                    d          |t/          t                    dLd                     dS )MNz7Footage blocked: verified TTS/layout inputs are missing)filer   zutf-8)encodingsource_canon_sha256verifiedTpronunciation_verifiedsemantic_content_changedFsource_sha256output_sha256spoken_narration_sha256pronunciation_receipt_sha256	visual_qaz/Footage blocked: TTS/layout canon hash mismatchlayout_sha256audio_sha256r1   zLFootage blocked: prior submission belongs to different authority/input bytesstatus>   queuedrunning	completed)r1   rB   resumedr7   )ensure_asciir   z!Footage blocked: prior job ended z); inspect before a deliberate replacementzDFootage blocked: unreceipted output already exists; do not overwritez/health   r)   ok
h264_nvencz,Footage blocked: GPU endpoint is not healthylayoutfootage_dirz(/data/video-pipeline/GacMaiAudio/footagepatternz*.mp4	recursiveaudiooutputseedi+  	overwritewidthi  heighti8  fpsr(   center_xi  center_ycenter_widthi`  center_heightvideo_encoderpresetp4cq   z/v1/footage-render-huyenan/jobszContent-Typezapplication/jsonPOST)dataheadersmethod>   rC   rD   z-Footage submission did not return a valid job)versionr8   r7   r1   rB   endpointrP   payloadr@   rA   pronunciation_sha256r>   expected_duration_secondssubmitted_at)parentsexist_ok   )rG   indent
)r1   rB   r7   
submission)%TTSexistsPRONUNCIATIONLAYOUTAUDIOLAYOUT_IMAGEprintsysstderrr/   loads	read_textgetr   
SUBMISSIONr3   dumpsOUTPUTr+   r,   r-   r.   r0   r!   Requestencoderelative_toPROJECTr&   r   nowr   utc	isoformatparentmkdir
write_text)ttspronunciationrK   canonlayout_hash
audio_hashpriorjobrB   r2   healthre   r,   r1   receipts                  r   mainr   )   s   ::<< }3355 V]]__ TYT`T`TbTb jvj}j}jj GcjYYYYq
*S]]G]44
5
5CJ}666HHIIMZ(('(::;;FGG)**E
4''77+,,D88Z((44788EE77?##}'8'8'I'III77,--1B1B?1S1SSS77122c-6H6HHH77?##s5zz11::j!!--::k2&&**:66dBB::+,,55?cjQQQQql##KUJ 
:///AABBII+,,55yy))[88yy((J6699X&& 7 `gjgqrrrr1eHo&&""777$*h6VZsxyy  IN  O  O  O  P  P  P1c&cccjmjtuuuuq}} T[^[effffq			y 0"		=	= %8$$% % % % % % % % % % % % % % %zz(t##vzz,'?'?t'K'K<3:NNNNq	#l##	A	 	7	 (	 	U		 &s6{{		
 		
 #E	 		  	 (-b	 	C	 $Q	 )7	 >Md	 		 (0	 8<R	 	G n$$00Z  ''))NDV3W`f %  G 
				4	4 "i!!" " " " " " " " " " " " " " "WWXF SWWX&&.CCC=CJOOOOq%CGGH$5$54f((1122w$j - 1 1/ B B(+M(:(:%-e__ X\22<<>>	 	G D4888$*W5KKKdR]deee	$*#''(2C2C\aqtu  rA  rA  B  B  QV  W  W  W  X  X  X1s$   R((R,/R,!XX	X__main__)r   r/   r   rv   urllib.requestr+   r   r   pathlibr   __file__resolveri   r   ro   rq   rr   rs   rt   r}   r{   r.   r   r&   r3   r   __name__exit r   r   <module>r      sH         



     ' ' ' ' ' ' ' '      
$x..
 
 
"
"
*1
-++66	/	/((55	/	/44
"  ( ( (
# # #U U Up zCHTTVV r   