Update app.py
Browse files
app.py
CHANGED
|
@@ -1,12 +1,9 @@
|
|
| 1 |
-
from flask import Flask, request, jsonify
|
| 2 |
import re
|
| 3 |
|
| 4 |
app = Flask(__name__)
|
| 5 |
|
| 6 |
def get_youtube_video_id(url):
|
| 7 |
-
"""
|
| 8 |
-
Extracts the unique YouTube video ID from various URL formats.
|
| 9 |
-
"""
|
| 10 |
patterns = [
|
| 11 |
r'(?:https?:\/\/)?(?:www\.)?youtube\.com\/watch\?v=([a-zA-Z0-9_-]{11})',
|
| 12 |
r'(?:https?:\/\/)?(?:www\.)?youtu\.be\/([a-zA-Z0-9_-]{11})',
|
|
@@ -20,28 +17,23 @@ def get_youtube_video_id(url):
|
|
| 20 |
|
| 21 |
@app.route('/')
|
| 22 |
def home():
|
| 23 |
-
return "
|
| 24 |
|
| 25 |
@app.route('/api')
|
| 26 |
def get_thumbnails():
|
| 27 |
video_url = request.args.get('url')
|
| 28 |
-
|
| 29 |
if not video_url:
|
| 30 |
-
return jsonify({"error": "
|
| 31 |
-
|
| 32 |
video_id = get_youtube_video_id(video_url)
|
| 33 |
-
|
| 34 |
if not video_id:
|
| 35 |
-
return jsonify({"error": "
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
"
|
| 39 |
-
"
|
| 40 |
-
"
|
| 41 |
-
"mqdefault": f"https://img.youtube.com/vi/{video_id}/mqdefault.jpg"
|
| 42 |
}
|
| 43 |
-
|
| 44 |
-
return jsonify(thumbnails)
|
| 45 |
|
| 46 |
if __name__ == '__main__':
|
| 47 |
-
app.run(host="0.0.0.0", port=7860)
|
|
|
|
| 1 |
+
from flask import Flask, request, jsonify, redirect
|
| 2 |
import re
|
| 3 |
|
| 4 |
app = Flask(__name__)
|
| 5 |
|
| 6 |
def get_youtube_video_id(url):
|
|
|
|
|
|
|
|
|
|
| 7 |
patterns = [
|
| 8 |
r'(?:https?:\/\/)?(?:www\.)?youtube\.com\/watch\?v=([a-zA-Z0-9_-]{11})',
|
| 9 |
r'(?:https?:\/\/)?(?:www\.)?youtu\.be\/([a-zA-Z0-9_-]{11})',
|
|
|
|
| 17 |
|
| 18 |
@app.route('/')
|
| 19 |
def home():
|
| 20 |
+
return "API is running. Use /api?url=YOUTUBE_URL to get thumbnails.", 200
|
| 21 |
|
| 22 |
@app.route('/api')
|
| 23 |
def get_thumbnails():
|
| 24 |
video_url = request.args.get('url')
|
|
|
|
| 25 |
if not video_url:
|
| 26 |
+
return jsonify({"error": "The 'url' query parameter is required."}), 400
|
|
|
|
| 27 |
video_id = get_youtube_video_id(video_url)
|
|
|
|
| 28 |
if not video_id:
|
| 29 |
+
return jsonify({"error": "Invalid or unsupported YouTube URL provided."}), 400
|
| 30 |
+
thumbnail_urls = {
|
| 31 |
+
"high_quality": f"https://img.youtube.com/vi/{video_id}/maxresdefault.jpg",
|
| 32 |
+
"medium_quality": f"https://img.youtube.com/vi/{video_id}/sddefault.jpg",
|
| 33 |
+
"standard_quality": f"https://img.youtube.com/vi/{video_id}/hqdefault.jpg",
|
| 34 |
+
"default": f"https://img.youtube.com/vi/{video_id}/mqdefault.jpg"
|
|
|
|
| 35 |
}
|
| 36 |
+
return jsonify(thumbnail_urls)
|
|
|
|
| 37 |
|
| 38 |
if __name__ == '__main__':
|
| 39 |
+
app.run(host="0.0.0.0", port=7860)
|