Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -102,9 +102,13 @@ def youtube_api_search(query, max_results=1000):
|
|
102 |
# Update params with the nextPageToken to get the next batch of results
|
103 |
params['pageToken'] = response.json()['nextPageToken']
|
104 |
|
105 |
-
# Create a list of tuples with thumbnail URL
|
106 |
gallery_items = [
|
107 |
-
(
|
|
|
|
|
|
|
|
|
108 |
]
|
109 |
|
110 |
return gallery_items
|
@@ -172,14 +176,14 @@ with gr.Blocks() as demo:
|
|
172 |
gallery_items = youtube_api_search(query)
|
173 |
if error_message:
|
174 |
return [], error_message, gr.update(visible=True)
|
175 |
-
# Display videos
|
176 |
-
gallery_items_display = [(item[0], item[1]) for item in gallery_items]
|
177 |
return gallery_items_display, "", gr.update(visible=False)
|
178 |
|
179 |
# Update the selected video link field when a video is clicked in the gallery
|
180 |
def on_video_select(evt: gr.SelectData):
|
181 |
# Extract the video ID from the event value, which is a dictionary containing details of the selected item
|
182 |
-
selected_video_id = evt.value["caption"]
|
183 |
video_url = f"https://www.youtube.com/watch?v={selected_video_id}"
|
184 |
logging.debug(f"Video selected: {video_url}")
|
185 |
return video_url
|
|
|
102 |
# Update params with the nextPageToken to get the next batch of results
|
103 |
params['pageToken'] = response.json()['nextPageToken']
|
104 |
|
105 |
+
# Create a list of tuples with thumbnail URL, video ID, and video title
|
106 |
gallery_items = [
|
107 |
+
(
|
108 |
+
result["snippet"].get("thumbnails", {}).get("medium", {}).get("url", "https://via.placeholder.com/150"),
|
109 |
+
result["id"]["videoId"],
|
110 |
+
result["snippet"].get("title", "No title available")
|
111 |
+
) for result in all_results
|
112 |
]
|
113 |
|
114 |
return gallery_items
|
|
|
176 |
gallery_items = youtube_api_search(query)
|
177 |
if error_message:
|
178 |
return [], error_message, gr.update(visible=True)
|
179 |
+
# Display videos with thumbnails, video IDs, and titles
|
180 |
+
gallery_items_display = [(item[0], f"{item[2]} ({item[1]})") for item in gallery_items]
|
181 |
return gallery_items_display, "", gr.update(visible=False)
|
182 |
|
183 |
# Update the selected video link field when a video is clicked in the gallery
|
184 |
def on_video_select(evt: gr.SelectData):
|
185 |
# Extract the video ID from the event value, which is a dictionary containing details of the selected item
|
186 |
+
selected_video_id = evt.value["caption"].split('(')[-1][:-1] # Extract video ID from caption
|
187 |
video_url = f"https://www.youtube.com/watch?v={selected_video_id}"
|
188 |
logging.debug(f"Video selected: {video_url}")
|
189 |
return video_url
|