
    ^j                         d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZ ed          ZdZ	ej
        ZdZd Zd Zd Zd	 Zd
 Zd Zd Zedk    r e             dS dS )    )PathNzF/data/video-pipeline/HaTramAudio/project/017-Tam-Ve-Khong-Ghi-Diem-Denzrun-20260721T030911Z-51bf7fe4Levyc                      t           j                             t           j        j                                                                      dd          S )Nz+00:00Z)datetimenowtimezoneutc	isoformatreplace     work/verify_render.pyr   r      s<    "&&x'8'<==GGIIQQRZ[^__
_r   c                    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)fs   r   <lambda>zsha.<locals>.<lambda>	   s    qvvk** r   r   )hashlibsha256openiterupdate	hexdigest)phbr   s      @r   shar      s    
>ffTll <a****3//;;a;< < < < < < < < < < < < < < <	s   ,A##A'*A'c                     t          j        t          dz                                            } t          t
          t          d                                D ]0\  }}|                     |          |k    rt          d|z             1d S )Nz.ownership-lock.json)
project_idrun_idownerzownership mismatch: )
jsonloadsROOT	read_textPIDRUNOWNERitemsgetRuntimeError)dkvs      r   guardr1      s~    :t**557788s599??AA > >SQqUU1XXq[[|$:1$<===[> >r   c                 x    t          j        t          j        dddddddt	          |           g                    S )Nffprobez-verrorz-show_entrieszformat=duration,size,start_time:stream=index,codec_name,profile,codec_type,width,height,pix_fmt,field_order,r_frame_rate,sample_rate,channels,start_timez-ofr$   )r$   r%   
subprocesscheck_outputstr)r   s    r   prober8      si    
:*Id7?  Tn  ot  u{  |  @A  |B  |B  ,C  D  D  	E  	E  Er   c                     t                       |                     d| j        z   dz             }|                    t	          j        |dd          dz              t          j        ||            d S )N.z.tmpF   )ensure_asciiindent
)r1   	with_namename
write_textr$   dumpsosr   )pathr.   tmps      r   atomicrF      s    T^^C	M&011#..A[`hiAjAjAjkoAo2p2p2pqsq{|  AE  rF  rF  rF  rF  rFr   c                 (   d | d         D             }d | d         D             }t          |          dk    ot          |          dk    o|d                             d          dk    o|d                             d          d	k    o{|d                             d
          dk    o\|d                             d          dk    o=|d                             d          dk    o|d                             d          dk    |d         |d         fS )Nc                 D    g | ]}|                     d           dk    |S )
codec_typevideor,   .0xs     r   
<listcomp>zstreams_ok.<locals>.<listcomp>   s.    >>>1|!4!4g!=!=Q!=!=!=r   streamsc                 D    g | ]}|                     d           dk    |S )rI   audiorK   rL   s     r   rO   zstreams_ok.<locals>.<listcomp>   s3    B|B|B|_`_d_deq_r_rt{_{_{1_{_{_{r      r   
codec_nameh264widthi  heighti8  r_frame_ratez30/1aacsample_rate48000)lenr,   )prvsaus      r   
streams_okr`      s   >>9>>>B|B|bQZmB|B|B|rB
  	ps2wwz  	pbeii&=&=v&E  	p"Q%))T[J\J\^bJb  	pgijkglgpgpqygzgz  }A  hA  	p  FH  IJ  FK  FO  FO  P^  F_  F_  ag  Fg  	p  ln  op  lq  lu  lu  vB  lC  lC  EJ  lJ  	p  OQ  RS  OT  OX  OX  Yf  Og  Og  ip  Op  qs  tu  qv  wy  z{  w|  	|  |r   c                     t          j                    } |                     dg d           |                                 }t	                       t
          dz  |j        z  t          z  }t          j	        |dz  
                                          }t          j	        |dz  
                                          }t          j	        |dz  
                                          }t          j	        t
          dz  
                                          }|d	         }|                    d
          dk    s+|                    di                               d          durt          d          |j        dk    rft          |d                   }t
          dz  }	|d         d         d         }
t          j	        t
          dz  
                                          }t          |d                   }d                    t!          t"          |                    dg                               }dd|                    di                               d          du o|                    d          dk    od|v |                    d          du |                    d          |k    o7|                    d          |
k    o|                    d           |d!         k    d"}n|j        d#k    rt          |d$                   }t
          d%z  }	t          j	        t
          d&z  
                                          }t          j	        t
          dz  
                                          }|d         d         d         }
|d         d'         d         }t          |d(                   t          |d(                   z   }d|                    d)          |d*         k    o|                    d+          |d*         k    d,|v|                    d-          d.k    |                    d          |k    o=|                    d/          |d         k    o|                    d0          |d         k    d1}n|j        d2k    rt          |d$                   }t
          d3z  }	t          j	        t
          d%z  
                                          }|d         d         d         }
|d         d'         d         }t          |d(                   }d|                    d4          |d         k    |                                j        d5k     d6|                                j        cxk    od5k     nc d7}|                                r|                                j        d8k    rt          d9          t+          |          }t-          |          \  }}}t          |d:         d;                   }|                    ||                    d<          d=k    o|                    d>          d?v |                    d@          dAk    t1          ||z
            dBk    t1          t          |                    dC          pd8                    dDk     o4t1          t          |                    dC          pd8                    dDk     dE           |j        dk    r,|                    |t1          ||z
            dBk    dF           |j        d#k    rt1          ||z
            dBk    |dG<   t3          |                                          sAt          dHdI                    dJ |                                D                       z             i dKdLdMt8          dNt          d
dddd|dO|                    dP          d*t#          |          dt;          |          dQ|                                j        d(|dRdSd|dTdUdVdWdXdYdZd[d\t=                      }|j        dk    r!|                    |d!         |
dddd]           |j        d#k    rH|                    |d         |d         ||
|d(         |d(         |                    d^          d_           |j        d2k    r.|                    |d         ||
|d`         |da         ddb           t?          |	|           tA          t          j!        |j        dd|d         |dQ         |dc                     d S )dNstage)footagefinal	transcode)choicesworkzterminal-response.jsonzrequest-bindings.jsonzrequest.jsonzscript/project-manifest.jsoncanon_sha256status	completedverificationverifiedTz#server terminal verification failedrc   outputzlog/footage-render.jsongate_eventslayoutartifact_sha256zscript/tts-manifest.jsonoutput_duration commandmirror_appliedhorizontal_mirrorhflipsource_audio_discardedsource_canon_sha256source_layout_sha256source_audio_sha256output_sha256)terminal_completedserver_verifiedrt   rw   bindings_matchrd   output_video_pathzlog/final-render.jsonzlog/intro-render.jsonposterduration_secondsintro_video_pathartifact_pathfootage_video_pathmain_audio_pathaudio_sourcefootage_video_audiosource_intro_sha256source_footage_sha256)server_completed_verifiedinput_order_intro_then_footageno_main_audio_pathaudio_source_footager~   re   zlog/transcode-upload.jsonsource_final_sha256i ʚ;i6&)r   source_final_bindingunder_one_gbtarget_near_800mbr   zoutput missingformatdurationpix_fmtyuv420pfield_order>   NprogressiveprofileLCg?
start_timeg?)single_streamsvideo_contractaudio_contractduration_preservedtimestamps_start_zero)narration_single_audioduration_exactduration_sum_exactztechnical checks failed: ,c              3   $   K   | ]\  }}||V  d S )Nr   )rM   r/   r0   s      r   	<genexpr>zmain.<locals>.<genexpr>(   s0      TzTz[^[\]^xyTzUVTzTzTzTzTzTzr   schema_versionrS   r!   r"   job_ididartifact_bytestechnical_qapassedzeendpoint terminal verification + independent ffprobe + streaming SHA-256; no frame extraction/viewing)ri   rl   checksmethod
content_qanot_run_by_policyframe_qaprohibited_not_runhash_methodsha256_stream_8MiBcompleted_at)rz   ry   ru   rt   rw   packaging_mode)r   r   source_poster_sha256ry   intro_duration_secondsfootage_duration_secondsr   target_output_bytesmax_output_bytes)r   r   ry   r   r   r   )rb   ri   rl   r   bytesr   )"argparseArgumentParseradd_argument
parse_argsr1   r&   rb   r)   r$   r%   r'   r,   r-   r   floatjoinmapr7   statst_sizeis_filer8   r`   r   absallvaluesr+   r(   r   r   rF   printrB   )aargsrg   tr   reqmcanonoutreceiptro   ttsexpectedrs   r   introfootr   finr]   okr0   rR   r   r.   s                            r   mainr      s   Q^^G<[<[<[^\\\bcbnbnbpbp]aqvqxqxqx
6k$*S 4:t4L/L.W.W.Y.Y#Z#Z]a]gim  oF  jF  iQ  iQ  iS  iS  ^T  ^T[\  Y]  Yc  ei  jx  ex  dC  dC  dE  dE  YF  YF  UX  IM  IS  UY  Zx  Ux  TC  TC  TE  TE  IF  IF  GH  MN  O]  M^  GLEE(OO[  AEE.$<$<$@$@$L$LTX$X$X_k  mR  `S  `S  ZSJ	
3x=#$'@"@'-HXYaHbctHuz~  {E  GK  Lf  Gf  Fq  Fq  Fs  Fs  {t  {tvy  ~C  DG  HY  DZ  ~[  ~[  u}
((3s1552..//
0
0'#dAEER`acLdLdLhLhiyLzLz  C  MC  MB  HI  HM  HM  Na  Hb  Hb  dk  Hk  MB  pw  {B  pB  \]  \a  \a  bz  \{  \{  C  \C  UV  UZ  UZ  [p  Uq  Uq  sx  Ux  UY  }~  }B  }B  CY  }Z  }Z  \b  }b  UY  gh  gl  gl  mB  gC  gC  EH  IX  EY  gY  
Z  
Z&&
j'
3"#$$#T2I-IWPTPZ\`ax\x  \D  \D  \F  \F  QG  QG%  MQ  MW  Y]  ^w  Yw  XB  XB  XD  XD  ME  ME  HL  MN  O\  M]  ^f  Mg  hy  Mz  FL  BC  DQ  BR  S[  B\  ]n  Bo  {A  y~  D  EW  X  yY  yY  Z_  `d  ew  `x  Zy  Zy  yy  px&*CGGTfLgLgino~iL  My  EH  EL  EL  Ma  Eb  Eb  dh  ix  dy  Ey  O`  hk  Ok  CD  CH  CH  IW  CX  CX  Zo  Co  AB  AF  AF  G\  A]  A]  _d  Ad  A[  ij  in  in  oD  iE  iE  GL  M^  G_  i_  A[  de  di  di  jA  dB  dB  DH  IZ  D[  d[  
\  
\&&
j+
3"#$$#T2M-MWRVR\^bcz^z  ^F  ^F  ^H  ^H  SI  SIc  QR  S`  Qa  bj  Qk  l}  Q~  JP  FG  HU  FV  W_  F`  ar  Fs  E  }B  CF  GY  CZ  }[  }[  t|&*!%%H]B^B^`cdu`vBv  GJ  GO  GO  GQ  GQ  GY  Zg  Gg  |G  IL  IQ  IQ  IS  IS  I[  |i  |i  |i  |i  \i  |i  |i  |i  |i  
j  
j&S+Q..\BR5S5S/S	#JJ*R..zr!E%8Z8P2Q2QRXR_R_rt  GH  GL  GL  MV  GW  GW  Yb  Gb  GS  gh  gl  gl  mz  g{  g{  S  gS  ej  en  en  ox  ey  ey  {  e  UX  Ya  bj  Yj  Uk  Uk  mp  Up  IL  MR  ST  SX  SX  Ye  Sf  Sf  Sk  jk  Ml  Ml  Im  Im  nr  Ir  Id  wz  {@  AF  AJ  AJ  KW  AX  AX  A]  \]  {^  {^  w_  w_  `d  wd  ae  ae  Sf  Sf  SfJ	&--"VYZbckZkVlVlnqVq(r(rsssJS(9J5K5KS5P34FMMOO{<0KCHHTzTzbhbnbnbpbpTzTzTzLzLz0z#{#{{ mQ  m|C  m  mXk  m*UY  mZopu  mv~  @A  @E  @E  FJ  @K  @K  m  L[  \_  `c  \d  \d  m  ev  wz  {~  w  w  m  @P  QT  QY  QY  Q[  Q[  Qc  m  dv  w  m  @N  Ya  mq  {A  Kr  Os  Os  m  t@  AT  m  U_  `t  m  uB  CW  m  Xf  gj  gl  gl  mJ	!((#o:Nfl  BI  [_  y}  $~  $~      J>O8Pimn  jA  Y_  w}  W\  ]o  Wp  LP  Qc  Ld  vw  v{  v{  |L  vM  vM  "N  "N  O  O  OJAHHC@Q<Rjp  IO  fi  j  f@  TW  Xj  Tk  {  &@  &@  A  A  A5TZX\fghyfz  DE  FV  DW  ck  %l  %l  m  m  n  n  n  n  nr   __main__)pathlibr   r   r   r   r$   rC   r5   r&   r)   r@   r(   r*   r   r   r1   r8   rF   r`   r   __name__r   r   r   <module>r      s$         3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3	T
RSSXwTW  }A  }Fx{  MS  GL _ _ _  
> > >E E EF F F| | |o o o0 Zr   