
    ^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mZmZ d dlm	Z	  e	d          Z
dZdZdZddZddZddZddZddZedk    r e             dS dS )    )annotationsN)datetimetimezone)PathzE/data/video-pipeline/HaTramAudio/project/013-Ngay-Buu-Cuc-Cu-Sang-Denz013-Ngay-Buu-Cuc-Cu-Sang-Denzrun-20260720T110344Z-f6c08be9zororeturnstrc                     t          j        t          j                                                                      dd          S )Nz+00:00Z)r   nowr   utc	isoformatreplace     _/data/video-pipeline/HaTramAudio/project/013-Ngay-Buu-Cuc-Cu-Sang-Den/work/extract_qa_frames.pyr   r      s0    <%%//1199(CHHHr   pathr   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    !&&"9"9 r   r   )hashlibsha256openiterupdate	hexdigest)r   hblockr   s      @r   shar"      s    A	4 A99993?? 	 	EHHUOOOO	               ;;==s   ,A##A'*A'Nonec                    t          j        t          dz                      d                    } t          t
          t          dd                                D ]0\  }}|                     |          |k    rt          d|           1d S )Nz.ownership-lock.jsonutf-8encodingactive)
project_idrun_idownerstatuszownership mismatch: )
jsonloadsROOT	read_text
PROJECT_IDRUN_IDOWNERitemsgetRuntimeError)lockkeyvalues      r   guardr:      s    :t44???QQRRD%/6E]effllnn = =
U88C==E!!;c;;<<< "= =r   dictc                x    t          j        t          j        dddddddt	          |           g                    S )Nffprobez-verrorz-show_entrieszYformat=duration,size:stream=index,codec_type,codec_name,width,height,sample_rate,channelsz-ofr-   )r-   r.   
subprocesscheck_outputr	   )r   s    r   proberA   $   sC    :j-4/cvs4yy/     r   c                    t          j                    } |                     dg d           |                                 }t	                       t
          dz  dz  dz  t
          dz  dz  t
          dz  dz  d}||j                 }t          |          }t          |d	         d
                   }t
          dz  |j         dz  }|	                    dd           d|dz  fd|dz  fd|dz  fg}|j        dv r-dt          d|dz            fdt          d|dz            fg|z   }g }|D ]\  }	}
|d|	 dz  }t          j        ddd d!d"d#|
d$d%t          |          d&d't          |          g           t          |          }|d(         d)         }|                    |	|
t          |          t          |          |                                j        |                    d*          |                    d+          d,           d-t&          t(          |j        d.d/t          |          t          |          |||t+                      d0}|d1z  }t	                       |                    t/          j        |d/d23          d4z   d56           t3          t/          j        d.d/t          |          |d7         d8d/9                     d S ):Nstage)footagefinalupload)choicesoutputrD   zfootage.mp4z	final.mp4zfinal-upload.mp4formatdurationlogz-checkT)parentsexist_ok10g?50g      ?90g?>   rE   rF   introg      @gMbP?
transitiong      (@g{Gz?zframe-z.pngffmpegz-hide_bannerz	-loglevelr>   z-yz-ssz.6fz-iz	-frames:v1streamsr   widthheight)labeltimestamp_secondsr   r   bytesrV   rW      	extractedF)schema_versionr)   r*   rC   r,   verifiedsource_pathsource_sha256source_duration_secondssource_probeframes
created_atzframe-manifest.json   )ensure_asciiindent
r%   r&   r`   )r,   r^   manifestr`   )rf   )argparseArgumentParseradd_argument
parse_argsr:   r/   rC   rA   floatmkdirminr?   
check_callr	   appendr"   statst_sizer5   r1   r2   r   
write_textr-   dumpsprint)parserargssourcessourcedatarJ   outdirpointsrc   rX   	timestampr   image_probestreamri   s                  r   mainr   ,   s7   $&&F
)G)G)GHHHD	GGG(?Y.>;./$66 G
 TZ F==DT(^J/00HE\tz1111F
LLL---X^$tX^&<tXPS^>TUFz(((CX%5667,DRZ]aRaHbHb9cdgmmF"  y,,,,,nk7D%II[I[#f++{CT
 	 	 	 DkkY'*!*II$iiYY[[(ZZ((jj**
 
 	 	 	 	  6{{V#+ee H ))D	GGGOODJxeAFFFMX_O```	$*CPTIIhp  rA  iB  C  C  RW  X  X  X  Y  Y  Y  Y  Yr   __main__)r   r	   )r   r   r   r	   )r   r#   )r   r   r   r;   )
__future__r   rj   r   r-   r?   r   r   pathlibr   r/   r1   r2   r3   r   r"   r:   rA   r   __name__r   r   r   <module>r      s   " " " " " "        ' ' ' ' ' ' ' '      tSTT+
	(I I I I   = = = =   5Y 5Y 5Y 5Yp zDFFFFF r   