Yt_dlp YoutubeDL funktioniert lokal, schlägt jedoch beim Rendern mit „Melden Sie sich an, um zu bestätigen, dass Sie keiPython

Python-Programme
Anonymous
 Yt_dlp YoutubeDL funktioniert lokal, schlägt jedoch beim Rendern mit „Melden Sie sich an, um zu bestätigen, dass Sie kei

Post by Anonymous »

Ich baue ein Flask-Backend, das mit yt_dlp Audio von YouTube herunterlädt.

Lokal funktioniert alles perfekt. Aber wenn ich denselben Code für Render bereitstelle, gibt die Route /import-youtube einen 500-Fehler zurück.
Hier ist meine vereinfachte Route:

Code: Select all

@app.route('/import-youtube', methods=['POST'])
def import_youtube():
data = request.get_json(silent=True) or {}
url = data.get("url")

ydl_opts = {
"format": "bestaudio/best",
"postprocessors": [{
"key": "FFmpegExtractAudio",
"preferredcodec": "mp3",
"preferredquality": "192",
}],
"outtmpl": os.path.join(DOWNLOADS_DIR, "%(title)s.%(ext)s"),
}

try:
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
info = ydl.extract_info(url, download=True)
except Exception as e:
app.logger.error("YouTube import failed", exc_info=True)
return jsonify({"error": str(e)}), 500
Was beim Rendern fehlschlägt
Die Protokolle zeigen:

Code: Select all

yt_dlp.utils.DownloadError: ERROR: [youtube] :
Sign in to confirm you’re not a bot.
Use --cookies-from-browser or --cookies for authentication.
Lokal auf meinem Rechner passiert das nie.
Meine Umgebung
  • Python 3.13 (Render)
  • Flask
  • yt_dlp 2024.x
  • FFmpeg in der Render-Umgebung installiert
  • Verwenden von Gunicorn: gunicorn FindSongsBackEnd.app:app
Meine Frage
Warum erfordert yt_dlp „Anmelden, um zu bestätigen, dass Sie kein sind bot“ nur auf Render, während genau der gleiche Code lokal funktioniert?
Gibt es eine empfohlene Möglichkeit, diesen Fehler zu vermeiden, wenn yt_dlp auf Cloud-Hosting-Anbietern (Render, AWS usw.) ausgeführt wird?
Ich suche insbesondere nach:
  • Ob es sich hierbei um ein IP-/Ratenbegrenzungsproblem handelt.
  • Ob es eine Möglichkeit gibt, yt_dlp zu konfigurieren, um diesen Fehler zu vermeiden, ohne Browser-Cookies zu übergeben.
  • Oder ob der richtige Ansatz darin besteht, DownloadError abzufangen und diesen Fall als nicht wiederherstellbare Antwort zu behandeln.
Jede Anleitung oder vorherige Erfahrung mit yt_dlp auf Cloud-Hosts wäre hilfreich geschätzt.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post