
    ^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	d dl
Z
d dlmZ  ed          ZdZdZd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d Zd Zd Zedk    r e             dS dS )    )annotationsN)PathzI/data/video-pipeline/HaTramAudio/project/016-Nguoi-Giu-Am-Thanh-Cuoi-Cungzrun-20260720T233725Z-24504f17@fae6fce617a14dc4f8b3bd52968cc688a456c45a60bc2ed7701ccd8164875e02zhttp://192.168.1.104:8024zoutput/final.mp4zoutput/final-upload.mp4zlog/transcode-intent.jsonzlog/transcode-upload.jsonc                     t           j                            t           j        j                                                                      dd          S )Nz+00:00Z)dtdatetimenowtimezoneutc	isoformatreplace     work/render/run_transcode.pyr
   r
      s5    11;;==EEhsSS
Sr   c                0   t          j                    }|                     d          5 }|                    d          x}r,|                    |           |                    d          x},d d d            n# 1 swxY w Y   |                                S )Nrbi   )hashlibsha256openreadupdate	hexdigest)phfbs       r   shar      s    
>ffTll +a66+*qxx{{{166+*+ + + + + + + + + + + + + + +	s   AA99A= A=c                    | j                             dd           |                     | j        dz             }|                    t          j        |dd          dz              t          j        ||            d S )NT)parentsexist_okz.tmpF   )ensure_asciiindent
)	parentmkdirwith_suffixsuffix
write_textjsondumpsosr   )r   ots      r   atomicr0      s    tT:::Q]]18TZ?=[=[1\]\h\himistu  DI  QR  jS  jS  jS  TX  jX  ]Y  ]Y  ]Y  Z\  Zd  ef  gh  Zi  Zi  Zi  Zi  Zir   c                    t           j                            t          | z   d          5 }t	          j        |          cd d d            S # 1 swxY w Y   d S )N   timeout)urllibrequesturlopenBASEr+   load)pathrs     r   getr<      sf    nT$Yr22Katy||KKKKKKKKKKKKKKKKKKs   AAAc                B   t           j                            t          | z   t	          j        |                                          ddid          }t           j                            |d          5 }t	          j        |          cd d d            S # 1 swxY w Y   d S )NzContent-Typezapplication/jsonPOST)dataheadersmethod<   r3   )	r5   r6   Requestr8   r+   r,   encoder7   r9   )r:   objqr;   s       r   postrG      s    	>$t)C)?)?)A)A>ZlJmu{||nQr**Caty||CCCCCCCCCCCCCCCCCCs   3BBBc                    t          j        dddddddt          |           gddd	          }t          j        |j                  S )
Nffprobez-verrorz-show_entriesz`format=duration,size:stream=codec_type,codec_name,width,height,r_frame_rate,sample_rate,channelsz-ofr+   T)capture_outputtextcheck)
subprocessrunstrr+   loadsstdout)r   rF   s     r   proberS      s    >9T'/  ;]  ^c  dj  kn  op  kq  kq  r  BF  LP  W[  \  \  \  dh  dn  op  ow  dx  dx  ]xr   c                    t          j        t          dz                                            } | d         | d         | d         | d         ft          j        t
          ddfk    sJ t          t          dz            t          k    sJ t          j        t          d	z                                            }|d         d
k    r4|d         r,|d         d         r|d         t          t                    k    sJ d S )Nz.ownership-lock.json
project_idrun_idownerstatuszoromain_session_pipelinezstory/story-canon.txtzlog/final-render.json	completedverified	visual_qaoutput_sha256)	r+   rQ   ROOT	read_textnameRUNr   CANONINPUT)lr   s     r   guardrf      s   :t**557788<QRS[Q\]^_f]ghijrhs@tw{  xA  BE  FL  Md  we  Ae  Ae  Ae  Ae  mp  qu  vM  qM  mN  mN  PU  mU  mU  mU  mU:t++6688998kAYAY^_`j^kAYpqr}p~  @J  qKAY  PQ  Ra  Pb  dg  hm  dn  dn  Pn  Pn  Pn  Pn  Pn  Pnr   c                    t                       t          t                    t          t                    dddddddd	} t	          j        t          j        | d	d
                                                    	                                }d }t                                          rt          j        t                                                    }|d         |k    sJ |                    d          dk    r|                    d          rpt                                          rW|                    d          t          t                    k    r,t!          t          j        d|d         d                     d S |                    d          }|st                                          rt#          d          t$                                          rQt          j        t$                                                                        d          dk    rt#          d          t          d          }|                    d          dk    r,|                    d          d	u r|                    d          rJ dt&          j        t*          dd|| t,          t          t                    t/                      d
}t1          t$          |           t3          d|           }|                    d          p|                    d          }|sJ |                    d|t/                                  t1          t$          |           t1          t          i |d!|i           	 t                       t          d"|z             }t          j        t                                                    }|                    |                    d|d                   |t/                      #           t1          t          |           |                    d          d$v rt#          d%          |                    d          dk    r|                    d&          pi }|                    d          d	u r[|                    d'          d	u rDt                                          r+d(t                                          j        cxk     rdk     sn J t;          t                    }	|	d)         }
d* |
D             }d+ |
D             }t=          |	d,         d-                   }t=          t;          t                    d,         d-                   }t?          |          dk    rt?          |          dk    ry|d(         d.         d/k    rg|d(         d0         |d(         d1         fd2k    rG|d(         d.         d3k    r5tA          |d(         d4                   d5k    rtC          ||z
            d6k    sJ |                    dd	d	d	t,          t          t                    t          t                    t          t                    t                                          j        |tC          ||z
            t/                      7           t1          t          |           t!          t          j        d||d         |d8         |d9                     d S tE          j#        d:           z);Ni /i ʚ;  8  r2   `   F)	input_video_pathoutput_video_pathtarget_output_bytesmax_output_byteswidthheightfpsaudio_bitrate_kbps	overwriteT),:)	sort_keys
separatorsrequest_sha256rX   r[   r\   r^   completed_reusedjob_id)rX   rz   zunreceipted upload copy exists
submittingzambiguous transcode intentz/healthok
h264_nvencrunning   )
schema_versionrU   rV   rX   r\   rx   payloadsource_canon_sha256source_final_sha256
created_atz!/v1/huyenan-transcode-upload/jobsid	submitted)rX   rz   
updated_atsubmitted_responsez"/v1/huyenan-transcode-upload/jobs/)rX   last_responser   )failed	cancelledztranscode terminal failureverificationunder_one_gbr   streamsc                *    g | ]}|d          dk    |S )
codec_typevideor   .0xs     r   
<listcomp>zmain.<locals>.<listcomp>)   s&    %O%O%OAaow6N6Na6N6N6Nr   c                *    g | ]}|d          dk    |S )r   audior   r   s     r   r   zmain.<locals>.<listcomp>)   s,    R|R|R|YZcdeqcrt{c{c{STc{c{c{r   formatduration
codec_nameh264ro   rp   )rh   ri   aacsample_ratei  gVUUUUU?)rX   r\   technical_verifiedr   r   r   output_pathr^   output_bytesoutput_durationduration_deltacompleted_atr   )rX   rz   r   bytesr      )$rf   rP   rd   OUTPUTr   r   r+   r,   rD   r   RECEIPTexistsrQ   r`   r<   r   printRuntimeErrorINTENTr_   ra   rb   rc   r
   r0   rG   r   statst_sizerS   floatlenintabstimesleep)r   request_shajobr;   r   iresponsejvdsvsadurmasters                  r   mainr      s
   SZZCKKfo  DN  W[  ei  pr  HJ  W\  ]  ]  jq  jx  y}  yC  DK  VZ  fo  yp  yp  yp  yw  yw  yy  yy  jz  jz  jD  jD  jF  jF  ^i  KO  GJNN Jw  ""##!1-=+>+K+K+K+KUU8__k!!aeeJ&7&7!FMMOO!PQPUPUVePfPfhklrhshsPsPstyz~  {E  Pb  lm  nv  lw  Fx  Fx  {y  {y  uz  uz  uz  {A  {AeeHoo# w]]__I<(HIII]]__  EF$4$4$6$677;;HEE|SSZf  hD  [E  [E  UE	NN!!%%//4//AEE,4G4G44O4OXYX]X]^gXhXh4O4O4OTY\]bt  KR  in  EH  IN  EO  EO  ]`  ]b  ]b  c  c!  dj  kq  rs  dt  dt  dt3G<<(hAWAWAm[c[g[ghl[m[mSuxnxnxnxyz  zB  zB  JU  ]`  lo  lq  lq  zB  zr  zr  zr  sy  z@  AB  sC  sC  sC  DJ  KR  Sv  VW  Sv  Xl  mu  Sv  Sv  Dw  Dw  Dw'''C4S899!DJwGXGXGZGZ<[<[!\]\d\dlmlqlqrz{|  ~F  |G  mH  mH  WX  dg  di  di\d  ]j  ]j  ]j  kq  ry  z{  k|  k|  k|UU8__...\B^5_5_/_UU8__k!!UU> b1j(9(9T(A(AaeeNF[F[_cFcFchnhuhuhwhwFc|}  E  J  J  L  L  T  }_  }_  }_  }_  U_  }_  }_  }_  }_  }_  }_
6]]1Qy\1%O%O%O%O%O"R|R|^_R|R|R|PQ  BG  HI  JR  HS  T^  H_  B`  B`  ~A  hm  ns  ty  nz  nz  {C  nD  EO  nP  hQ  hQ  ag  Y\  ]_  Y`  Y`  bc  Yc  Yc  hk  lm  hn  hn  pq  hq  hq  vx  yz  v{  |H  vI  KQ  vQ  vQ  WY  Z[  W\  ]d  We  fh  ij  fk  lt  fu  Vv  xC  VC  VC  HI  JK  HL  MY  HZ  \a  Ha  Ha  fi  jk  lm  jn  o|  j}  f~  f~  @E  fE  fE  JM  NQ  RX  NX  JY  JY  [d  Jd  Jd  Jd  Jd88;RVkp  FI  JO  FP  FP  ]`  ag  ]h  ]h  wz  {A  wB  wB  PV  P[  P[  P]  P]  Pe  vy  IL  MP  QW  MW  IX  IX  fi  fk  fk8  l  l  l  ms  t{  |}  m~  m~  m~  D  EI  EO  Ze  or  |}  ~M  |N  WX  Yg  Wh  tw  Px  Px  Ey  Ey  z  z  z  {A  {A*Q---r   __main__)
__future__r   r	   r   r   r+   r-   r   urllib.requestr5   rN   pathlibr   r_   rb   rc   r8   rd   r   r   r   r
   r   r0   r<   rG   rS   rf   r   __name__r   r   r   <module>r      s   " " " " " " D D D D D D D D D D D D D D D D D D D D D D D D D D D D      	T
UVV[zWZ  BD  |A  Je  EI
T*C%Cf4PkKkFtx  zU  uUls S S S  
 i  i  iL L LD D Dx x xn n n  ( Zr   