28 lines
613 B
Python
28 lines
613 B
Python
|
import threading
|
||
|
import youtube_dl
|
||
|
|
||
|
class Namespace(object): pass
|
||
|
|
||
|
def get_youtube_metadata(url, ydl = youtube_dl.YoutubeDL()):
|
||
|
#todo: check if url is valid
|
||
|
|
||
|
#todo, stop it from doung the whole playlist
|
||
|
resp = ydl.extract_info(url, download=False)
|
||
|
#print resp.keys()
|
||
|
|
||
|
title = resp.get('title')
|
||
|
length = resp.get('duration')
|
||
|
|
||
|
#print( title, "%i:%.2i" % (length//60, length%60))
|
||
|
return title, "%i:%.2i" % (length//60, length%60)
|
||
|
|
||
|
# decorator:
|
||
|
def call_as_thread(func):
|
||
|
def new_func(*args, **kwargs):
|
||
|
threading.Thread(
|
||
|
target = func,
|
||
|
args = args,
|
||
|
kwargs = kwargs
|
||
|
).start()
|
||
|
return new_func
|