My wife was wanting to see meta tags embedded in YouTube videos so I whipped up this quick Python script.
Install Python 3
Install Beautiful Soup
Ubuntu:
sudo apt-get install python3-bs4
sudo apt-get install python-lxml
PIP:
python3 -m pip install BeautifulSoup4
python3 -m pip install lxml
import urllib.request
from bs4 import BeautifulSoup
url = 'https://www.youtube.com/watch?v=BWYiMcH0cRc'
print('URL: %s' % url)
print('*' * 60)
request = urllib.request.Request(url)
response = urllib.request.urlopen(request)
soup = BeautifulSoup(response,"lxml")
keywords = soup.find("meta", {"name":"keywords"})['content']
for keyword in keywords.split(','):
print(keyword.strip())Result:
URL: https://www.youtube.com/watch?v=BWYiMcH0cRc
****************************************
indoor plants
indoor plant guide
house plants
Make it a simple Tk application:
import urllib.request
from bs4 import BeautifulSoup
from tkinter import *
def get_keywords():
url = entry.get()
if not url: return
listbox.delete(0, END)
request = urllib.request.Request(url)
response = urllib.request.urlopen(request)
soup = BeautifulSoup(response,"lxml")
keywords = soup.find("meta", {"name":"keywords"})['content']
for id,keyword in enumerate(keywords.split(',')):
#print(keyword.strip())
listbox.insert(id, keyword.strip())
entry.delete(0, END)
entry.focus()
def close_window ():
root.destroy()
root = Tk()
root.title('Keywords')
root.geometry("640x480")
root.resizable(0, 0)
topframe = Frame(root)
topframe.pack(side = TOP, fill = X)
label = Label(topframe, text = "URL")
label.pack(side = LEFT)
entry = Entry(topframe, bd = 1)
entry.pack(fill = X)
entry.focus()
buttonframe = Frame(root)
buttonframe.pack(side = BOTTOM, fill = X)
button_run = Button(buttonframe, text="Run", command=get_keywords)
button_run.pack(side = RIGHT)
button_close = Button(buttonframe, text="Close", command=close_window)
button_close.pack(side = LEFT)
bottomframe = Frame(root)
bottomframe.pack(side = BOTTOM, fill = BOTH, expand = 1)
listbox = Listbox(bottomframe)
listbox.pack(side = LEFT, fill = BOTH, expand = 1)
root.mainloop()