pip install flask yt-dlp

from flask import Flask, request, Response
import subprocess

app = Flask(__name__)

def run_yt_dlp_command(url, options):
try:
# Run yt-dlp command with specified options
result = subprocess.run(['yt-dlp'] + options + [url], capture_output=True, text=True)

if result.returncode != 0:
return Response(f'yt-dlp command failed: {result.stderr}', status=500)

# The output URL
output_url = result.stdout.strip()
return Response(output_url, mimetype='text/plain')

except Exception as e:
return Response(str(e), status=500)

@app.route('/audio', methods=['GET'])
def get_audio_url():
url = request.args.get('url')
if not url:
return Response('URL parameter is missing', status=400)

# Options for extracting audio URL
options = ['-x', '-g']
return run_yt_dlp_command(url, options)

@app.route('/video', methods=['GET'])
def get_video_url():
url = request.args.get('url')
if not url:
return Response('URL parameter is missing', status=400)

# Options for extracting video URL
options = ['-g']
return run_yt_dlp_command(url, options)

if __name__ == '__main__':
app.run(host='0.0.0.0', port=8080)