better playlist management

This commit is contained in:
Azlux
2018-12-08 23:46:31 +01:00
parent 9def7bd0f8
commit a6b1da43bf
4 changed files with 75 additions and 161 deletions

View File

@ -2,15 +2,25 @@ import youtube_dl
import variables as var
def get_playlist_info():
def get_playlist_info(url, start_index=1, user=""):
ydl_opts = {
'playlist_items': str(0)
'extract_flat': 'in_playlist'
}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
for i in range(2):
try:
info = ydl.extract_info(var.playlist[-1]['url'], download=False)
var.playlist[-1]['playlist_title'] = info['title']
info = ydl.extract_info(url, download=False)
playlist_title = info['title']
for j in range(start_index, start_index + var.config.getint('bot', 'max_track_playlist')):
music = {'type': 'url',
'title': info['entries'][j]['title'],
'url': "https://www.youtube.com/watch?v=" + info['entries'][j]['url'],
'user': user,
'from_playlist': True,
'playlist_title': playlist_title,
'playlist_url': url,
'ready': 'validation'}
var.playlist.append(music)
except youtube_dl.utils.DownloadError:
pass
else:

View File

@ -2,7 +2,7 @@ import youtube_dl
import variables as var
def get_url_info():
def get_url_info(index=-1):
ydl_opts = {
'noplaylist': True
}
@ -11,9 +11,9 @@ def get_url_info():
for i in range(2):
try:
print(var.playlist)
info = ydl.extract_info(var.playlist[-1]['url'], download=False)
var.playlist[-1]['duration'] = info['duration'] / 60
var.playlist[-1]['title'] = info['title']
info = ydl.extract_info(var.playlist[index]['url'], download=False)
var.playlist[index]['duration'] = info['duration'] / 60
var.playlist[index]['title'] = info['title']
except youtube_dl.utils.DownloadError:
pass
else: