Adiciona endpoint de busca de videos
This commit is contained in:
33
main.py
33
main.py
@@ -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}")
|
||||||
Reference in New Issue
Block a user