File size: 1,449 Bytes
405af5a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr
from bs4 import BeautifulSoup
import requests


def greet(link):
    HEADER = {"User-Agent": 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}
    #link = "https://youtu.be/vQUCSHUlN-k?si=FfIsODGjJDzIHOAS"
    response = requests.get(link) #, headers=HEADER)
    soup = BeautifulSoup(response.text, "html.parser")  
    #print (soup.prettify())

    titleSoupMeta = soup.find("meta", property="og:title")
    videoTitle = titleSoupMeta["content"] if titleSoupMeta else "NotFound"
    result = {}
    result["views"] = soup.find("meta", itemprop="interactionCount")['content']

    #soup=soup.prettify()
    #viewSoupMeta = [line for line in soup.split('viewCount') if "views" in line]
    
    response2=response.text[response.text.find("viewCount"):].split('"')[2]
    # Store JSON data in API_Data
    #for key in API_Data:{
    #	print(key,":", API_Data[key])
    #}
    #viewSoupMeta=viewSoupMeta[19:25]
    ##videoViews = viewSoupMeta["content"] if titleSoupMeta else "NotFound"
    '''
    if soup.find(attrs={"viewCount": "3363"}) == None:
        viewSoupMeta =  "3363" #soup.find(attrs={"class": "watch-view-count"}).text
    else:
        viewSoupMeta=  soup
    '''
    #viewSoupMeta = API_Data #str(response).find("viewCount")

    return  result #soup.prettify()


iface = gr.Interface(fn=greet, inputs="text", outputs="text")
iface.launch()