
    ~Mj                     h    d Z ddlZddlZ ej                  dd      ZddededefdZd	ed
ede	fdZ
y)u:   Utilitários de busca e download de B-roll via Pexels API.    NPEXELS_API_KEY8YDqxXGXvOaPQnitSVyxbhghbH49w95DV2fbAkynBjNVvus1TI60Qffdoquery
quantidadereturnc           	      B   t         st        d|  d       g S dt         i}	 t        j                  d|| |dddd	      }|j
                  dk7  rt        d|j
                   d|  d       g S g }|j                         j                  dg       D ]h  }t        |j                  dg       d d      D ]D  }|j                  dd      dk\  s|j                  |d   |j                  dd      |d   d        h j |S # t        $ r}t        d
|        g cY d}~S d}~ww xY w)u{   
    Busca vídeos relevantes na Pexels em orientacao portrait.
    Retorna lista de dicts com 'url', 'duracao', 'id'.
    z<[pexels] AVISO: chave nao configurada. Busca ignorada para 'z'.Authorizationz$https://api.pexels.com/videos/searchportraitmedium)r   per_pageorientationsize   )headersparamstimeoutz[pexels] Erro na requisicao: N   z[pexels] Status z para query ''videosvideo_filesc                 &    | j                  dd      S )Nwidthr   )get)xs    7/opt/mia/workspace/video_editor/backend/pexels_utils.py<lambda>zbuscar_videos.<locals>.<lambda>+   s    gq@Q     T)keyreverser   r   i  linkduration
   id)urlduracaor#   )	
PEXELS_KEYprintrequestsr   	Exceptionstatus_codejsonsortedappend)r   r   r   rer   vfs           r   buscar_videosr2   
   sD   
 LUGSUVW	
+GLL2&) 	 

 	}} }UG1EF	FVVX\\(B' 	mR06Q[_` 	AuuWa C'V9 uuZ4D' 
 		 M)  -aS12	s   C; ;	DDDDr$   destinoc                 8   	 t        j                  | dd      }|j                          t        |d      5 }|j	                  d      D ]  }|j                  |        	 ddd       y# 1 sw Y   yxY w# t        $ r}t        d|  d	|        Y d}~y
d}~ww xY w)u1   Baixa um vídeo da Pexels para o caminho destino.T<   )streamr   wbi    )
chunk_sizeNz[pexels] Erro ao baixar z: F)r(   r   raise_for_statusopeniter_contentwriter)   r'   )r$   r3   r.   r1   chunkr/   s         r   baixar_videor>   7   s    	LLT26	'4  	A48 	 	  (Rs34s4   4A5 )A) A5 )A2.A5 2A5 5	B>BB)   )__doc__osr(   getenvr&   strintlistr2   boolr>    r   r   <module>rH      sW    @ 	 RYY')cd
* *# *d *Zc C D r   