File size: 1,270 Bytes
8ace90a
285074c
8ace90a
 
 
835159d
8ace90a
 
 
 
1da72c4
8ace90a
1da72c4
285074c
1da72c4
 
285074c
8ace90a
a899567
 
701bcd3
b95a3ea
07cbf5c
285074c
 
8ace90a
 
8bc0075
8ace90a
 
 
 
285074c
8ace90a
 
285074c
8ace90a
285074c
 
8ace90a
 
285074c
8ace90a
285074c
8ace90a
285074c
 
8ace90a
 
0625ee4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
from pytubefix import YouTube
from urllib.parse import quote
from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/')
def hello_world():
    return "Hello World!"

@app.route('/audio_url')
def get_audio_url():
    video_url = request.args.get("url")

    if not video_url:
        return jsonify({"error": "Missing 'url' query parameter"}), 400

    try:
        proxies={
            'http':'http://lfvqisry-rotate:an43nwquy0o9@p.webshare.io:80',
            'https':'http://lfvqisry-rotate:an43nwquy0o9@p.webshare.io:80'
        }
        yt = YouTube(video_url, proxies=proxies)

        # Get best audio-only stream
        audio_stream = (
            yt.streams
            .filter(only_audio=True)
            .order_by("abr")
            .desc()
            .first()
        )

        if not audio_stream:
            return jsonify({"error": "No audio stream found"}), 404

        audio_url = audio_stream.url
        encoded_audio_url = quote(audio_url, safe="")

        return jsonify({
            "raw_audio_url": audio_url,
            "encoded_audio_url": encoded_audio_url
        })

    except Exception as e:
        return jsonify({"error": str(e)}), 500


if __name__ == "__main__":
    app.run(host="0.0.0.0", port=7860)