File size: 1,828 Bytes
e9e19fc
449a6d3
ec5aa0b
c78b25e
cfd9d13
c78b25e
 
0c4b9a7
c78b25e
0c4b9a7
 
c78b25e
 
0c4b9a7
c78b25e
0c4b9a7
c78b25e
 
 
 
 
 
1c363e3
 
 
 
 
 
 
 
 
 
 
 
cfd9d13
 
 
1c363e3
 
 
 
 
 
 
 
 
 
803d7a3
1c363e3
89ea00c
1c363e3
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
51
import gradio as gr
import requests

# Pexels API ν‚€ μ„€μ •
PEXELS_API_KEY = '여기에_λ‹Ήμ‹ μ˜_API_ν‚€λ₯Ό_μž…λ ₯ν•˜μ„Έμš”'

def search_images(keyword):
    headers = {
        'Authorization': PEXELS_API_KEY
    }
    params = {
        'query': keyword,
        'per_page': 80  # ν•œ λ²ˆμ— λ°˜ν™˜λ°›μ„ 이미지 수
    }
    url = 'https://api.pexels.com/v1/search'
    response = requests.get(url, headers=headers, params=params)
    data = response.json()
    
    # κ²€μƒ‰λœ μ΄λ―Έμ§€μ˜ URL을 리슀트둜 μΆ”μΆœ
    image_urls = [photo['src']['original'] for photo in data['photos']]
    return image_urls

def search_videos(keyword):
    headers = {
        'Authorization': PEXELS_API_KEY
    }
    params = {
        'query': keyword,
        'per_page': 80  # ν•œ λ²ˆμ— λ°˜ν™˜λ°›μ„ λΉ„λ””μ˜€ 수
    }
    url = 'https://api.pexels.com/videos/search'
    response = requests.get(url, headers=headers, params=params)
    data = response.json()
    
    # κ²€μƒ‰λœ λΉ„λ””μ˜€μ˜ λ‹€μš΄λ‘œλ“œ κ°€λŠ₯ν•œ URL을 리슀트둜 μΆ”μΆœ
    video_download_links = [video['video_files'][0]['link'] for video in data['videos']]
    return video_download_links

with gr.Blocks() as demo:
    with gr.Tabs():
        with gr.Tab("이미지 검색"):
            image_search_input = gr.Textbox(label="검색 ν‚€μ›Œλ“œ")
            image_search_output = gr.Gallery(label="κ²€μƒ‰λœ 이미지")
            image_search_input.change(search_images, inputs=image_search_input, outputs=image_search_output)
        
        with gr.Tab("λΉ„λ””μ˜€ 검색"):
            video_search_input = gr.Textbox(label="검색 ν‚€μ›Œλ“œ")
            video_search_output = gr.Markdown(label="κ²€μƒ‰λœ λΉ„λ””μ˜€")
            video_search_input.change(search_videos, inputs=video_search_input, outputs=video_search_output)

demo.launch()