
    ?^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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dZd Zd Zd Zedk    r ej         e                       dS # e$ rbZ e  e!e          "                    d          r e!e          nd e!e          z   ej#                    ej        d           Y dZ[dS dZ[ww xY wdS )    N)datetimetimezone)Path   zoutput/final.mp4zlog/final-render.jsonzstory/promotion-report.jsonzoutput/final-upload.mp4zoutput/final-upload.staging.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          }t          t                     }|                    d          dusI|                    d          dus2|                    d          |k    s|                    d          |k    rt	          d          t                                          r(t                                          st	          d          t                                          r#t          j        t                                                    }|                    d          du r|                    d          |k    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"                                          rt          j        t"                                                    }|                    d          |k    s.|                    d	          |k    s|                    d          st	          d          |}|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         }t5          d#          D ]B}t!          dd$|z             }|                    d          d%v r n$t7          j        d&           Ct	          d'          |                    d          d(k    s+|                    d)i                               d          dur;t	          d*|                    d           d+|                    d,                     t&                                          st	          d-          t=          t&                    }|                    d.g           }d/ |D             }d0 |D             }t?          |          dk    ot?          |          dk    o|d                             d1          d2k    o|d                             d1          d3k    o||d                             d4          dk    o]|d                             d5          dk    o>t&                                          j        d
k     o|d)                             d6          du }|st	          d7          tA          j!        t&          t                     d ||rd(nd8|t%          t           "                    tF                              ||tH          t%          t          "                    tF                              t                                          j        t          t                    |d)         |dd9d:d;t)          j        t,          j                                                  d<}t                              t          j        |dd !          d"z              t          t          j        |||d=         |d         d>d?                     |rdndS )@NzTranscode blocked: missing spoken_sha256verifiedTsource_canon_sha256output_sha256z4Transcode blocked: final/canon/hash receipt mismatchz2Unreceipted upload output exists; do not overwriteinput_sha256i ʚ;job_id)reused_verifiedr?   bytesr   GETz/healthstatusok
h264_nvenczTranscode endpoint unhealthyzNTranscode blocked: prior submission belongs to different authority/input bytesi /`   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>   r?   rC   r   submitted_at   )ensure_asciiindent
i  z"/v1/huyenan-transcode-upload/jobs/>   failed	cancelled	completed
   z'Transcode poll timeout; resume same jobrY   verificationzTranscode job ended z: r.   z*Transcode completed without staging outputstreamsc                 <    g | ]}|                     d           |S )rL   get.0ss     r   
<listcomp>zmain.<locals>.<listcomp>C   s-    ?e?e?eaVWV[V[\cVdVd?e?e?e?er"   c                 <    g | ]}|                     d           |S )sample_rater^   r`   s     r   rc   zmain.<locals>.<listcomp>C   sc      mY  mY  mYst  DE  DI  DI  JW  DX  DX  mYmn  mY  mY  mYr"   
codec_nameh264aacrL   rM   under_one_gbz%Transcode staging verification failedrW   not_required user_preapproved_footage_content)requiredrC   reason)rQ   r;   rC   r<   inputr>   r?   endpointoutputoutput_bytesr=   server_verificationindependent_probe	visual_qa
checked_atrq   )r;   r?   rA   r$   )rT   )%FINALFINAL_RECEIPT	PROMOTIONexistsRuntimeErrorr   r5   	read_textr_   r+   OUTPUTRECEIPTstatst_sizeprintr   r   
SUBMISSIONr4   STAGINGr   nowr   utc	isoformat
write_textrangetimesleepis_filer8   lenosreplacerelative_toPROJECTr   )r   final_receipt	promotioncanon	final_shaoldhealth
submission	candidater   createdr?   _joblocalr\   videoaudior;   receipts                       r   mainr   #   su
   }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%jjI}}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~  Q~  Q~  EQ  RH  EI  EI  I}}xw~~//xlCw6x6x0x~~ vJw((**++77:$&&3773H+I+I5+P+PUXU\U\]kUlUlnwUwUw  }C  }J  }J  }L  }LUw  QW  Q\  Q\  Q^  Q^  Qf  gt  Qt  Qt  y|  y@  y@  AP  yQ  yQ  SV  W]  S^  S^  y^  y^$*c(mTZT_T_TaTaTijjkkllltutu5##Fzz(T!!VZZ%=%=T%I%IP\]{P|P|J|J *Z113344	==.//66)--:W:WYb:b:bjsjwjw  yA  kB  kB:boppp
$'JJ3w<<fq  FS  ik  tx  BF  MO  \a  b  bB7KK5u\eovw  pA  KR  S[  K\  gn  ~F  ~J  KS  KW  ~X  ~X  ~b  ~b  ~d  ~d  e  e
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??]<0\#]#]]
..E9R!8!8?e?e7?e?e?e  mY  mYx  mY  mY  mYfk%jj!m  YE

A  Y%(,,|2L2Lf2T  YY^_`YaYeYefrYsYsuzYz  Y  @E  FG  @H  @L  @L  MT  @U  @U  W[  @[  Y  `e  fg  `h  `l  `l  mu  `v  `v  x|  `|  Y  AH  AM  AM  AO  AO  AW  Xe  Ae  Y  jm  n|  j}  jA  jA  BP  jQ  jQ  UY  jYHO,'NOOOJwvHX6[kkS[rw  AD  EJ  EV  EV  W^  E_  E_  A`  A`  py  CI  UY  cf  gm  gy  gy  zA  gB  gB  cC  cC  SY  S^  S^  S`  S`  Sh  y|  }C  yD  yD  [^  _m  [n  CH  af  p~  Hj  Uk  Uk  yA  yE  FN  FR  yS  yS  y]  y]  y_  y_  `  `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__zTranscode blocked:zTranscode blocked: )file)Nr   )$r#   r   r   r2   sysr   urllib.requestr   r   r   pathlibr   __file__resolveparentsr   rv   rw   rx   r|   r   r   r}   r   r   r+   r8   r   __name__exit	Exceptionexcr   r4   
startswithstderr r"   r   <module>r      s     				     



      ' ' ' ' ' ' ' '      X  (+  --
/
/	((1199
++ \ \ \ \  
" " "&n &n &nN ZSXddff   %CCHH''(<==aCCXY\Y\]`YaYaCagjgqrrrr
#(1+++++++++ s   B% %D*ADD