-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathytconsole.py
87 lines (68 loc) · 3.26 KB
/
ytconsole.py
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# coding: utf-8
import os, argparse, shutil
import sys, youtube_dl
script_dir = os.getcwd()
desktop = os.path.expanduser('~/') + 'Desktop/'
ex = 'https://www.youtube.com/watch?v=C0DPdy98e4c'
def get_info(link):
try:
global titulo
ydl = youtube_dl.YoutubeDL()
meta = ydl.extract_info(link, download=False)
#Global titulo, para nome final de arquivo
titulo = meta['title']
print '\nTitulo: {}'.format(meta['title'])
print 'Duracao: {} segundos'.format(meta['duration'])
print 'Data de upload: {}'.format(meta['upload_date'])
print 'Uploader: {}'.format(meta['uploader'])
print 'Visualizacoes: {}'.format(meta['view_count'])
except TypeError:
exit("\n[*] Link invalido, impossivel obter informacoes")
#get_video_() and get_audio_() downloads content from the web and automatically saves on Desktop, see $desktop
def get_video_(link):
global file_format
yt = os.system('youtube-dl --format mp4 --output "{}{}.mp4" {}'.format(desktop, titulo, link))
file_format = '.mp4'
print "\n[*] {}{} concluido ".format(titulo,file_format)
def get_audio_(link):
global file_format
yt = os.system('youtube-dl -x --audio-format mp3 --output "{}{}.mp4" {}'.format(desktop, titulo, link))
file_format = '.mp3'
print "\n[*] {}{} concluido ".format(titulo,file_format)
def send_(disk_path):
try:
src_file = desktop + titulo + file_format
shutil.copy(src_file, disk_path)
print "[*] {} enviado para {}.".format(src_file, disk_path)
except IOError:
print "[*] Nao foi possivel enviar para {}\nveja se o dispositivo esta conectado e tente novamente como administrador.\n".format(disk_path)
if __name__=="__main__":
global disk_path
if len(sys.argv) < 2:
exit("Uso: python ytconsole.py --help")
parser = argparse.ArgumentParser()
parser.add_argument("-l", "--link", help='Link do conteudo')
parser.add_argument('-v', '--video', help='Baixar somente video', action='store_true')
parser.add_argument('-a', '--audio', help='Baixar somente audio', action='store_true')
parser.add_argument('-i', '--info', help='Retornar informacoes sobre o link e sair', action='store_true')
parser.add_argument('-d', '--disk_path', help='Baixar e enviar para dispositivo configurado.')
args = parser.parse_args()
link = args.link
video = args.video
audio = args.audio
info = args.info
disk_path= args.disk_path
if disk_path == None:
disk_path = False
if info:
get_info(link)
elif video:
get_info(link)
get_video_(link)
if disk_path:
send_(disk_path)
elif audio:
get_info(link)
get_audio_(link)
if disk_path:
send_(disk_path)