
    b\jW                     <   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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dZddZd Zd Zd Zedk    r ej         e                       dS dS )    N)datetimetimezone)Path   zoutput/final.mp4zlog/final-render.jsonzstory/promotion-report.jsonzoutput/final-upload.mp4z$log/upload-transcode-submission.jsonzlog/upload-transcode.jsonzhttp://192.168.1.104:8024   c                 V   |&t          j        |                                          nd }t          j                            t          |z   ||rddini |           }t          j                            ||          5 }t          j        |          cd d d            S # 1 swxY w Y   d S )NzContent-Typezapplication/json)dataheadersmethod)timeout)	jsondumpsencodeurllibrequestRequestBASEurlopenload)r   pathpayloadr   bodyreqresponses          script/transcode-upload.pyr   r      s    )0)<G			#	#	%	%	%$DtDydbf;nNK];^;^lnv|}}C			G		4	4[	RZH[H[[[[[[[[[[[[[[[[[[[s   =BB"%B"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    !4!4     r"   )hashlibsha256openiterupdate	hexdigest)r   hblockr    s      @r   shar+      s    nA	4 JA4444S99IIE!((5////IJ J J J J J J J J J J J J J J;;==s   ,A##A'*A'c                     t          j        dddddddddt          |           g
d	d	d	
          }t          j        |j                  S )Nffprobez-verrorz-show_entrieszformat=duration,sizezMstream=index,codec_name,width,height,sample_rate,channels:stream_tags=encoderz-ofr   T)capture_outputtextcheck)
subprocessrunstrr   loadsstdout)r   outs     r   prober8      s    	$w?UVe  gv  w|  }C  DG  HL  DM  DM  N  ^b  hl  sw  	x  	x  	xC:cj!!!r"   c                  |   t           t          t          fD ](} |                                 st	          d|            )t          j        t                                                    }t          j        t                                                    }|                    d          }|                    d          dus[|                    d          dusD|                    d          |k    s+|                    d          t          t                     k    rt	          d          t                                          r(t                                          st	          d          t                                          r
t          j        t                                                    }|                    d          du r|                    d          |k    rt                                          rt                                          j        d	k     rt|                    d          t          t                    k    rIt          t          j        d|d
         t                                          j        d                     dS t!          dd          }|                    d          dk    s|                    d          durt	          d          d }t"                                          rFt          j        t"                                                    }|                    d          |k    r|}|t%          t                     t%          t                    dd	dddddd	}t!          dd|          }	dd||	d
         |	d         |t'          j        t*          j                                                  d}t"                              t          j        |dd          d z              |d
         }
t3          d!          D ]B}t!          dd"|
z             }|                    d          d#v r n$t5          j        d$           Ct	          d%          |                    d          d&k    s+|                    d'i                               d          dur;t	          d(|                    d           d)|                    d*                     t9          t                    }|                    d+g           }d, |D             }d- |D             }t;          |          dk    ot;          |          dk    o|d                             d.          d/k    o|d                             d.          d0k    o||d                             d1          dk    o]|d                             d2          dk    o>t                                          j        d	k     o|d'                             d3          du }d||rd&nd4||
t<          t%          t                               t@                              t%          t                              t@                              t                                          j        t          t                    |d'         |t'          j        t*          j                                                  d5}t                              t          j        |dd          d z              t          t          j        ||
|d6         |d         d7d8                     |rdndS )9NzTranscode blocked: missing spoken_sha256verifiedTsource_canon_sha256output_sha256z4Transcode blocked: final/canon/hash receipt mismatchz2Unreceipted upload output exists; do not overwritei ʚ;job_id)reused_verifiedr>   bytesr   GETz/healthstatusok
h264_nvenczTranscode endpoint unhealthyi /`   i  i8  r   F)	input_video_pathoutput_video_pathtarget_output_bytesmax_output_bytesaudio_bitrate_kbpswidthheightfps	overwritePOSTz!/v1/huyenan-transcode-upload/jobsr   )versionr;   r<   r>   rB   r   submitted_at   )ensure_asciiindent
i  z"/v1/huyenan-transcode-upload/jobs/>   failed	cancelled	completed
   z'Transcode poll timeout; resume same jobrX   verificationzTranscode job ended z: r.   streamsc                 <    g | ]}|                     d           |S )rK   get.0ss     r   
<listcomp>zmain.<locals>.<listcomp><   s-    >d>d>dQUVUZUZ[bUcUc>dq>d>d>dr"   c                 <    g | ]}|                     d           |S )sample_rater]   r_   s     r   rb   zmain.<locals>.<listcomp><   sc      lX  lX  lXrs  CD  CH  CH  IV  CW  CW  lXlm  lX  lX  lXr"   
codec_nameh264aacrK   rL   under_one_gbrV   )rP   r;   rB   r<   r>   endpointinputoutputoutput_bytesr=   server_verificationindependent_probe
checked_atrl   )r;   r>   r@   r$   )rS   )!FINALFINAL_RECEIPT	PROMOTIONexistsRuntimeErrorr   r5   	read_textr^   r+   OUTPUTRECEIPTstatst_sizeprintr   r   
SUBMISSIONr4   r   nowr   utc	isoformat
write_textrangetimesleepr8   lenr   relative_toPROJECT)r   final_receipt	promotioncanonoldhealth
submission	candidater   createdr>   _joblocalr[   videoaudior;   receipts                      r   mainr       sx	   }Y/ V V{{}}U<0Td0T0T#U#UUU*]446677M$*YM`M`MbMbBcBc	jsjwjw  yH  kI  kIdi}}Z  ,,0A0A*0M0MUY0Y0Y]j]n]n  pE  ^F  ^F  HM  ^M  ^M  Q^  Qb  Qb  cr  Qs  Qs  ux  y~  u  u  Q  Q  FR  SI  FJ  FJ  @J}}xw~~//xlCw6x6x0x~~ vJw((**++77:$&&3773H+I+I5+P+PU[UbUbUdUd+Pioititivivi~  @M  jM  jM  RU  RY  RY  Zi  Rj  Rj  lo  pv  lw  lw  Rw  Rw$*c(mTZT_T_TaTaTijjkkllltutu5##Fzz(T!!VZZ%=%=T%I%IP\]{P|P|J|J L*Z113344	==.//66)z$'JJ3v;;ep  ER  hj  sw  AE  LN  [`  a  aB7KK5uV]^fVgqx  zB  rC  NU  em  eq  rz  r~  e  e  eI  eI  eK  eK  L  L
djaPPPQUUVVVhF3ZZ G GE>vEFF778 BBB55
2EFF	F
wwx+%%)C)C)G)G
)S)S[_)_)_fr  tr  KN  KR  KR  S[  K\  K\  tr  tr  `c  `g  `g  ho  `p  `p  tr  tr  gs  gs  as
--E		)B 7 7>d>d'>d>d>d  lX  lXw~  lX  lX  lXej%jj!m  XE

A  X%(,,|2L2Lf2T  XY^_`YaYeYefrYsYsuzYz  X  @E  FG  @H  @L  @L  MT  @U  @U  W[  @[  X  `e  fg  `h  `l  `l  mu  `v  `v  x|  `|  X  AG  AL  AL  AN  AN  AV  Wd  Ad  X  il  m{  i|  i@  i@  AO  iP  iP  TX  iXHHX6[kkS[rw  BH  TX  ad  ej  ev  ev  w~  e  e  a@  a@  JM  NT  N`  N`  ah  Ni  Ni  Jj  Jj  z@  zE  zE  zG  zG  zO  `c  dj  `k  `k  BE  FT  BU  jo  }E  }I  JR  JV  }W  }W  }a  }a  }c  }c  d  dGtz'uAFFFtKLLL	$*6'.BYcjkzc{||  KP  Q  Q  Q  R  R  R  _g  Zn  Z[  Z[  mn  Snr"   __main__)Nr   )r#   r   r2   sysr   urllib.requestr   r   r   pathlibr   __file__resolveparentsr   rp   rq   rr   rv   r{   rw   r   r   r+   r8   r   __name__exit r"   r   <module>r      sL         



      ' ' ' ' ' ' ' '      X  (+  --
/
/	((99
++ \ \ \ \  
" " " n  n  nB Z(((((r"   