Adiciona endpoint de busca de videos

This commit is contained in:
LeoMortari
2025-09-23 20:08:31 -03:00
parent fedce5902a
commit aae1cfd34b

33
main.py
View File

@@ -166,3 +166,36 @@ def download_video(
"videoId": video_id, "videoId": video_id,
"filename": filename "filename": filename
} }
@app.get("/search")
def search_youtube_yt_dlp(
q: str = Query(..., description="Termo de busca"),
max_results: int = Query(5, ge=1, le=10, description="Número de resultados (máx 10)")
):
ydl_opts = {
"quiet": True,
"extract_flat": "in_playlist",
"skip_download": True,
}
search_query = f"ytsearch{max_results}:{q}"
try:
with YoutubeDL(ydl_opts) as ydl:
search_result = ydl.extract_info(search_query, download=False)
entries = search_result.get("entries", [])[:max_results]
results = []
for item in entries:
results.append({
"videoId": item.get("id"),
"title": item.get("title"),
"duration": item.get("duration"),
"url": item.get("webpage_url"),
"channel": item.get("uploader"),
"thumbnail": item.get("thumbnail"),
})
return {"results": results}
except Exception as e:
raise HTTPException(status_code=500, detail=f"Erro ao buscar vídeos: {e}")