
    \j                     <   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s0|                    d          dus|                    d          |k    rt	          d          t                                          r(t                                          st	          d          t                                          rt          j        t                                                    }|                    d          du r|                    d          |k    rt                                          rkt                                          j        d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	         }
t1          d           D ]B}t          dd!|
z             }|                    d          d"v r n$t3          j        d#           Ct	          d$          |                    d          d%k    s+|                    d&i                               d          dur;t	          d'|                    d           d(|                    d)                     t7          t                    }|                    d*g           }d+ |D             }d, |D             }t9          |          dk    ot9          |          dk    o|d                             d-          d.k    o|d                             d-          d/k    o||d                             d0          dk    o]|d                             d1          dk    o>t                                          j        dk     o|d&                             d2          du }d||rd%nd3||
t:          t#          t                               t>                              t#          t                              t>                              t                                          j        tA          t                    |d&         |t%          j        t(          j                                                  d4}t                              t          j        |dd          dz              t          t          j        ||
|d5         |d6         d7d8                     |rdndS )9NzTranscode blocked: missing spoken_sha256verifiedTsource_canon_sha256z/Transcode blocked: final/canon 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=   rA   r   submitted_at   )ensure_asciiindent
i  z"/v1/huyenan-transcode-upload/jobs/>   failed	cancelled	completed
   z'Transcode poll timeout; resume same jobrW   verificationzTranscode job ended z: r.   streamsc                 <    g | ]}|                     d           |S )rJ   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   ra   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aacrJ   rK   under_one_gbrU   )rO   r;   rA   r<   r=   endpointinputoutputoutput_bytesoutput_sha256server_verificationindependent_probe
checked_atrk   rl   )r;   r=   r?   r$   )rR   )!FINALFINAL_RECEIPT	PROMOTIONexistsRuntimeErrorr   r5   	read_textr]   OUTPUTRECEIPTstatst_sizeprintr   r   
SUBMISSIONr4   r   nowr   utc	isoformat
write_textrangetimesleepr8   lenr   relative_toPROJECTr+   )r   final_receipt	promotioncanonoldhealth
submission	candidater   createdr=   _joblocalrZ   videoaudior;   receipts                      r   mainr       s   }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  T`  aR  TS  TS  NS}}xw~~//xlCw6x6x0x~~ vJw((**++77:$&&3773H+I+I5+P+PU[UbUbUdUd+Pioititivivi~  @M  jM  jM$*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"   