summaryrefslogtreecommitdiff
path: root/config/nvim-2/nvim/undodir/%home%coast%dlhub%script.py
blob: 108eec01e1baa413541b8b86df4a16303a182a49 (plain)
ofshex dumpascii
0000 56 69 6d 9f 55 6e 44 6f e5 00 03 60 e0 f8 86 7a 7a 45 c4 b5 5a 2e 74 9c 3f bf a9 9c 1e 6b 2a e5 Vim.UnDo...`...zzE..Z.t.?....k*.
0020 76 54 e6 d0 67 e0 e6 a4 77 ac 4a 00 00 00 57 00 00 00 00 00 00 00 00 00 00 00 0f 00 00 00 01 00 vT..g...w.J...W.................
0040 00 00 0f 00 00 00 00 00 00 00 0f 00 00 00 0f 00 00 00 0f 00 00 00 00 6a 14 bd 80 04 01 00 00 00 .......................j........
0060 08 00 5f d0 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 00 .._.............................
0080 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01e0 00 00 00 00 00 00 6a 0e 39 05 04 01 00 00 00 06 00 f5 18 00 00 00 00 00 00 00 58 00 00 00 00 00 ......j.9.................X.....
0200 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 .........................5......
0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 56 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 .................V..............
0240 00 00 00 00 00 00 00 00 00 f4 0b 00 00 00 00 00 00 35 81 5f d0 00 00 00 01 00 00 00 05 00 00 00 .................5._............
0260 02 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 08 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 ................................
0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 ................................
03c0 00 00 57 00 00 00 00 00 00 00 00 00 00 00 56 00 00 00 00 00 00 00 00 6a 0e 3c f1 04 01 00 00 00 ..W...........V........j.<......
03e0 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 57 00 00 00 09 69 6d 70 6f 72 74 20 6f ...................W....import.o
0400 73 00 00 00 0a 69 6d 70 6f 72 74 20 73 79 73 00 00 00 0b 69 6d 70 6f 72 74 20 74 69 6d 65 00 00 s....import.sys....import.time..
0420 00 1d 66 72 6f 6d 20 64 61 74 65 74 69 6d 65 20 69 6d 70 6f 72 74 20 64 61 74 65 74 69 6d 65 00 ..from.datetime.import.datetime.
0440 00 00 0f 69 6d 70 6f 72 74 20 61 72 67 70 61 72 73 65 00 00 00 0d 69 6d 70 6f 72 74 20 79 74 5f ...import.argparse....import.yt_
0460 64 6c 70 00 00 00 00 00 00 00 3a 64 65 66 20 64 6f 77 6e 6c 6f 61 64 5f 76 69 64 65 6f 28 75 72 dlp.......:def.download_video(ur
0480 6c 2c 20 6f 75 74 70 75 74 5f 70 61 74 68 3d 4e 6f 6e 65 2c 20 71 75 61 6c 69 74 79 3d 22 62 65 l,.output_path=None,.quality="be
04a0 73 74 22 29 3a 00 00 00 07 20 20 20 20 22 22 22 00 00 00 35 20 20 20 20 44 65 73 63 61 72 67 61 st"):........"""...5....Descarga
04c0 20 75 6e 20 76 69 64 65 6f 20 64 65 73 64 65 20 75 6e 61 20 55 52 4c 20 75 74 69 6c 69 7a 61 6e .un.video.desde.una.URL.utilizan
04e0 64 6f 20 79 74 2d 64 6c 70 00 00 00 04 20 20 20 20 00 00 00 09 20 20 20 20 41 72 67 73 3a 00 00 do.yt-dlp................Args:..
0500 00 2c 20 20 20 20 20 20 20 20 75 72 6c 20 28 73 74 72 29 3a 20 55 52 4c 20 64 65 6c 20 76 69 64 .,........url.(str):.URL.del.vid
0520 65 6f 20 61 20 64 65 73 63 61 72 67 61 72 00 00 00 40 20 20 20 20 20 20 20 20 6f 75 74 70 75 74 eo.a.descargar...@........output
0540 5f 70 61 74 68 20 28 73 74 72 2c 20 6f 70 74 69 6f 6e 61 6c 29 3a 20 52 75 74 61 20 64 6f 6e 64 _path.(str,.optional):.Ruta.dond
0560 65 20 67 75 61 72 64 61 72 20 65 6c 20 76 69 64 65 6f 00 00 00 44 20 20 20 20 20 20 20 20 71 75 e.guardar.el.video...D........qu
0580 61 6c 69 74 79 20 28 73 74 72 2c 20 6f 70 74 69 6f 6e 61 6c 29 3a 20 43 61 6c 69 64 61 64 20 64 ality.(str,.optional):.Calidad.d
05a0 65 6c 20 76 69 64 65 6f 20 28 64 65 66 61 75 6c 74 3a 20 22 62 65 73 74 22 29 00 00 00 07 20 20 el.video.(default:."best")......
05c0 20 20 22 22 22 00 00 00 2a 20 20 20 20 23 20 43 72 65 61 72 20 63 61 72 70 65 74 61 20 64 65 20 .."""...*....#.Crear.carpeta.de.
05e0 73 61 6c 69 64 61 20 73 69 20 6e 6f 20 65 78 69 73 74 65 00 00 00 13 20 20 20 20 69 66 20 6f 75 salida.si.no.existe........if.ou
0600 74 70 75 74 5f 70 61 74 68 3a 00 00 00 2f 20 20 20 20 20 20 20 20 6f 73 2e 6d 61 6b 65 64 69 72 tput_path:.../........os.makedir
0620 73 28 6f 75 74 70 75 74 5f 70 61 74 68 2c 20 65 78 69 73 74 5f 6f 6b 3d 54 72 75 65 29 00 00 00 s(output_path,.exist_ok=True)...
0640 09 20 20 20 20 65 6c 73 65 3a 00 00 00 3c 20 20 20 20 20 20 20 20 6f 75 74 70 75 74 5f 70 61 74 .....else:...<........output_pat
0660 68 20 3d 20 6f 73 2e 70 61 74 68 2e 6a 6f 69 6e 28 6f 73 2e 67 65 74 63 77 64 28 29 2c 20 22 64 h.=.os.path.join(os.getcwd(),."d
0680 65 73 63 61 72 67 61 73 22 29 00 00 00 2f 20 20 20 20 20 20 20 20 6f 73 2e 6d 61 6b 65 64 69 72 escargas").../........os.makedir
06a0 73 28 6f 75 74 70 75 74 5f 70 61 74 68 2c 20 65 78 69 73 74 5f 6f 6b 3d 54 72 75 65 29 00 00 00 s(output_path,.exist_ok=True)...
06c0 04 20 20 20 20 00 00 00 25 20 20 20 20 23 20 43 6f 6e 66 69 67 75 72 61 72 20 6f 70 63 69 6f 6e ........%....#.Configurar.opcion
06e0 65 73 20 64 65 20 64 65 73 63 61 72 67 61 00 00 00 10 20 20 20 20 79 64 6c 5f 6f 70 74 73 20 3d es.de.descarga........ydl_opts.=
0700 20 7b 00 00 00 1a 20 20 20 20 20 20 20 20 27 66 6f 72 6d 61 74 27 3a 20 71 75 61 6c 69 74 79 2c .{............'format':.quality,
0720 00 00 00 42 20 20 20 20 20 20 20 20 27 6f 75 74 74 6d 70 6c 27 3a 20 6f 73 2e 70 61 74 68 2e 6a ...B........'outtmpl':.os.path.j
0740 6f 69 6e 28 6f 75 74 70 75 74 5f 70 61 74 68 2c 20 27 25 28 74 69 74 6c 65 29 73 2e 25 28 65 78 oin(output_path,.'%(title)s.%(ex
0760 74 29 73 27 29 2c 00 00 00 1b 20 20 20 20 20 20 20 20 27 6e 6f 70 6c 61 79 6c 69 73 74 27 3a 20 t)s'),............'noplaylist':.
0780 54 72 75 65 2c 00 00 00 2a 20 20 20 20 20 20 20 20 27 70 72 6f 67 72 65 73 73 5f 68 6f 6f 6b 73 True,...*........'progress_hooks
07a0 27 3a 20 5b 70 72 6f 67 72 65 73 73 5f 68 6f 6f 6b 5d 2c 00 00 00 05 20 20 20 20 7d 00 00 00 04 ':.[progress_hook],........}....
07c0 20 20 20 20 00 00 00 2d 20 20 20 20 70 72 69 6e 74 28 66 22 49 6e 69 63 69 61 6e 64 6f 20 64 65 .......-....print(f"Iniciando.de
07e0 73 63 61 72 67 61 20 64 65 73 64 65 3a 20 7b 75 72 6c 7d 22 29 00 00 00 29 20 20 20 20 70 72 69 scarga.desde:.{url}")...)....pri
0800 6e 74 28 66 22 47 75 61 72 64 61 6e 64 6f 20 65 6e 3a 20 7b 6f 75 74 70 75 74 5f 70 61 74 68 7d nt(f"Guardando.en:.{output_path}
0820 22 29 00 00 00 2d 20 20 20 20 70 72 69 6e 74 28 66 22 43 61 6c 69 64 61 64 20 73 65 6c 65 63 63 ")...-....print(f"Calidad.selecc
0840 69 6f 6e 61 64 61 3a 20 7b 71 75 61 6c 69 74 79 7d 22 29 00 00 00 04 20 20 20 20 00 00 00 08 20 ionada:.{quality}").............
0860 20 20 20 74 72 79 3a 00 00 00 1a 20 20 20 20 20 20 20 20 23 20 49 6e 69 63 69 61 72 20 64 65 73 ...try:............#.Iniciar.des
0880 63 61 72 67 61 00 00 00 2f 20 20 20 20 20 20 20 20 77 69 74 68 20 79 74 5f 64 6c 70 2e 59 6f 75 carga.../........with.yt_dlp.You
08a0 74 75 62 65 44 4c 28 79 64 6c 5f 6f 70 74 73 29 20 61 73 20 79 64 6c 3a 00 00 00 37 20 20 20 20 tubeDL(ydl_opts).as.ydl:...7....
08c0 20 20 20 20 20 20 20 20 69 6e 66 6f 20 3d 20 79 64 6c 2e 65 78 74 72 61 63 74 5f 69 6e 66 6f 28 ........info.=.ydl.extract_info(
08e0 75 72 6c 2c 20 64 6f 77 6e 6c 6f 61 64 3d 54 72 75 65 29 00 00 00 34 20 20 20 20 20 20 20 20 20 url,.download=True)...4.........
0900 20 20 20 76 69 64 65 6f 5f 74 69 74 6c 65 20 3d 20 69 6e 66 6f 2e 67 65 74 28 27 74 69 74 6c 65 ...video_title.=.info.get('title
0920 27 2c 20 27 56 69 64 65 6f 27 29 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 ',.'Video')...:............print
0940 28 66 22 5c 6e 44 65 73 63 61 72 67 61 20 63 6f 6d 70 6c 65 74 61 64 61 3a 20 7b 76 69 64 65 6f (f"\nDescarga.completada:.{video
0960 5f 74 69 74 6c 65 7d 22 29 00 00 00 38 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 28 66 _title}")...8............print(f
0980 22 41 72 63 68 69 76 6f 20 67 75 61 72 64 61 64 6f 20 65 6e 3a 20 7b 6f 75 74 70 75 74 5f 70 61 "Archivo.guardado.en:.{output_pa
09a0 74 68 7d 22 29 00 00 00 1a 20 20 20 20 65 78 63 65 70 74 20 45 78 63 65 70 74 69 6f 6e 20 61 73 th}")........except.Exception.as
09c0 20 65 3a 00 00 00 35 20 20 20 20 20 20 20 20 70 72 69 6e 74 28 66 22 45 72 72 6f 72 20 64 75 72 .e:...5........print(f"Error.dur
09e0 61 6e 74 65 20 6c 61 20 64 65 73 63 61 72 67 61 3a 20 7b 73 74 72 28 65 29 7d 22 29 00 00 00 14 ante.la.descarga:.{str(e)}")....
0a00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 46 61 6c 73 65 00 00 00 04 20 20 20 20 00 00 00 0f ........return.False............
0a20 20 20 20 20 72 65 74 75 72 6e 20 54 72 75 65 00 00 00 00 00 00 00 15 64 65 66 20 70 72 6f 67 72 ....return.True........def.progr
0a40 65 73 73 5f 68 6f 6f 6b 28 64 29 3a 00 00 00 2c 20 20 20 20 22 22 22 4d 75 65 73 74 72 61 20 65 ess_hook(d):...,...."""Muestra.e
0a60 6c 20 70 72 6f 67 72 65 73 6f 20 64 65 20 6c 61 20 64 65 73 63 61 72 67 61 22 22 22 00 00 00 24 l.progreso.de.la.descarga"""...$
0a80 20 20 20 20 69 66 20 64 5b 27 73 74 61 74 75 73 27 5d 20 3d 3d 20 27 64 6f 77 6e 6c 6f 61 64 69 ....if.d['status'].==.'downloadi
0aa0 6e 67 27 3a 00 00 00 2e 20 20 20 20 20 20 20 20 70 65 72 63 65 6e 74 20 3d 20 64 2e 67 65 74 28 ng':............percent.=.d.get(
0ac0 27 5f 70 65 72 63 65 6e 74 5f 73 74 72 27 2c 20 27 4e 2f 41 27 29 00 00 00 2a 20 20 20 20 20 20 '_percent_str',.'N/A')...*......
0ae0 20 20 73 70 65 65 64 20 3d 20 64 2e 67 65 74 28 27 5f 73 70 65 65 64 5f 73 74 72 27 2c 20 27 4e ..speed.=.d.get('_speed_str',.'N
0b00 2f 41 27 29 00 00 00 26 20 20 20 20 20 20 20 20 65 74 61 20 3d 20 64 2e 67 65 74 28 27 5f 65 74 /A')...&........eta.=.d.get('_et
0b20 61 5f 73 74 72 27 2c 20 27 4e 2f 41 27 29 00 00 00 51 20 20 20 20 20 20 20 20 70 72 69 6e 74 28 a_str',.'N/A')...Q........print(
0b40 66 22 5c 72 50 72 6f 67 72 65 73 6f 3a 20 7b 70 65 72 63 65 6e 74 7d 20 7c 20 56 65 6c 6f 63 69 f"\rProgreso:.{percent}.|.Veloci
0b60 64 61 64 3a 20 7b 73 70 65 65 64 7d 20 7c 20 45 54 41 3a 20 7b 65 74 61 7d 22 2c 20 65 6e 64 3d dad:.{speed}.|.ETA:.{eta}",.end=
0b80 27 27 29 00 00 00 23 20 20 20 20 65 6c 69 66 20 64 5b 27 73 74 61 74 75 73 27 5d 20 3d 3d 20 27 '')...#....elif.d['status'].==.'
0ba0 66 69 6e 69 73 68 65 64 27 3a 00 00 00 33 20 20 20 20 20 20 20 20 70 72 69 6e 74 28 22 5c 6e 50 finished':...3........print("\nP
0bc0 72 6f 63 65 73 61 6e 64 6f 20 61 72 63 68 69 76 6f 20 64 65 73 63 61 72 67 61 64 6f 2e 2e 2e 22 rocesando.archivo.descargado..."
0be0 29 00 00 00 00 00 00 00 0b 64 65 66 20 6d 61 69 6e 28 29 3a 00 00 00 5f 20 20 20 20 70 61 72 73 )........def.main():..._....pars
0c00 65 72 20 3d 20 61 72 67 70 61 72 73 65 2e 41 72 67 75 6d 65 6e 74 50 61 72 73 65 72 28 64 65 73 er.=.argparse.ArgumentParser(des
0c20 63 72 69 70 74 69 6f 6e 3d 27 44 65 73 63 61 72 67 61 64 6f 72 20 64 65 20 76 69 64 65 6f 73 20 cription='Descargador.de.videos.
0c40 70 61 72 61 20 66 69 6e 65 73 20 65 64 75 63 61 74 69 76 6f 73 27 29 00 00 00 4a 20 20 20 20 70 para.fines.educativos')...J....p
0c60 61 72 73 65 72 2e 61 64 64 5f 61 72 67 75 6d 65 6e 74 28 27 75 72 6c 27 2c 20 74 79 70 65 3d 73 arser.add_argument('url',.type=s
0c80 74 72 2c 20 68 65 6c 70 3d 27 55 52 4c 20 64 65 6c 20 76 69 64 65 6f 20 61 20 64 65 73 63 61 72 tr,.help='URL.del.video.a.descar
0ca0 67 61 72 27 29 00 00 00 5a 20 20 20 20 70 61 72 73 65 72 2e 61 64 64 5f 61 72 67 75 6d 65 6e 74 gar')...Z....parser.add_argument
0cc0 28 27 2d 6f 27 2c 20 27 2d 2d 6f 75 74 70 75 74 27 2c 20 74 79 70 65 3d 73 74 72 2c 20 68 65 6c ('-o',.'--output',.type=str,.hel
0ce0 70 3d 27 43 61 72 70 65 74 61 20 64 6f 6e 64 65 20 67 75 61 72 64 61 72 20 65 6c 20 76 69 64 65 p='Carpeta.donde.guardar.el.vide
0d00 6f 27 29 00 00 00 45 20 20 20 20 70 61 72 73 65 72 2e 61 64 64 5f 61 72 67 75 6d 65 6e 74 28 27 o')...E....parser.add_argument('
0d20 2d 71 27 2c 20 27 2d 2d 71 75 61 6c 69 74 79 27 2c 20 74 79 70 65 3d 73 74 72 2c 20 64 65 66 61 -q',.'--quality',.type=str,.defa
0d40 75 6c 74 3d 27 62 65 73 74 27 2c 20 00 00 00 52 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ult='best',....R................
0d60 20 20 20 20 20 20 20 20 68 65 6c 70 3d 27 43 61 6c 69 64 61 64 20 64 65 6c 20 76 69 64 65 6f 20 ........help='Calidad.del.video.
0d80 28 62 65 73 74 2c 20 77 6f 72 73 74 2c 20 31 30 38 30 70 2c 20 37 32 30 70 2c 20 65 74 63 2e 29 (best,.worst,.1080p,.720p,.etc.)
0da0 27 29 00 00 00 04 20 20 20 20 00 00 00 25 20 20 20 20 23 20 73 69 20 73 65 20 70 72 6f 70 6f 72 ')...........%....#.si.se.propor
0dc0 63 69 6f 6e 61 72 6f 6e 20 61 72 67 75 6d 65 6e 74 6f 73 00 00 00 1a 20 20 20 20 69 66 20 6c 65 cionaron.argumentos........if.le
0de0 6e 28 73 79 73 2e 61 72 67 76 29 20 3d 3d 20 31 3a 00 00 00 1e 20 20 20 20 20 20 20 20 23 20 73 n(sys.argv).==.1:............#.s
0e00 69 20 6e 6f 20 68 61 79 20 61 72 67 75 6d 65 6e 74 6f 73 00 00 00 3b 20 20 20 20 20 20 20 20 70 i.no.hay.argumentos...;........p
0e20 72 69 6e 74 28 22 3d 3d 3d 20 44 65 73 63 61 72 67 61 64 6f 72 20 64 65 20 56 69 64 65 6f 73 20 rint("===.Descargador.de.Videos.
0e40 70 61 72 61 20 45 73 74 75 64 69 6f 20 3d 3d 3d 22 29 00 00 00 31 20 20 20 20 20 20 20 20 75 72 para.Estudio.===")...1........ur
0e60 6c 20 3d 20 69 6e 70 75 74 28 22 49 6e 67 72 65 73 65 20 6c 61 20 55 52 4c 20 64 65 6c 20 76 69 l.=.input("Ingrese.la.URL.del.vi
0e80 64 65 6f 3a 20 22 29 00 00 00 58 20 20 20 20 20 20 20 20 6f 75 74 70 75 74 20 3d 20 69 6e 70 75 deo:.")...X........output.=.inpu
0ea0 74 28 22 43 61 72 70 65 74 61 20 64 65 20 64 65 73 74 69 6e 6f 20 28 64 65 6a 61 72 20 65 6e 20 t("Carpeta.de.destino.(dejar.en.
0ec0 62 6c 61 6e 63 6f 20 70 61 72 61 20 75 73 61 72 20 27 2e 2f 64 65 73 63 61 72 67 61 73 27 29 3a blanco.para.usar.'./descargas'):
0ee0 20 22 29 00 00 00 4f 20 20 20 20 20 20 20 20 71 75 61 6c 69 74 79 20 3d 20 69 6e 70 75 74 28 22 .")...O........quality.=.input("
0f00 43 61 6c 69 64 61 64 20 64 65 73 65 61 64 61 20 28 64 65 6a 61 72 20 65 6e 20 62 6c 61 6e 63 6f Calidad.deseada.(dejar.en.blanco
0f20 20 70 61 72 61 20 75 73 61 72 20 27 62 65 73 74 27 29 3a 20 22 29 00 00 00 08 20 20 20 20 20 20 .para.usar.'best'):.")..........
0f40 20 20 00 00 00 33 20 20 20 20 20 20 20 20 23 20 76 61 6c 6f 72 65 73 20 70 72 65 64 65 74 65 72 .....3........#.valores.predeter
0f60 6d 69 6e 61 64 6f 73 20 73 69 20 65 73 74 c3 a1 6e 20 76 61 63 c3 ad 6f 73 00 00 00 16 20 20 20 minados.si.est..n.vac..os.......
0f80 20 20 20 20 20 69 66 20 6e 6f 74 20 6f 75 74 70 75 74 3a 00 00 00 19 20 20 20 20 20 20 20 20 20 .....if.not.output:.............
0fa0 20 20 20 6f 75 74 70 75 74 20 3d 20 4e 6f 6e 65 00 00 00 17 20 20 20 20 20 20 20 20 69 66 20 6e ...output.=.None............if.n
0fc0 6f 74 20 71 75 61 6c 69 74 79 3a 00 00 00 1c 20 20 20 20 20 20 20 20 20 20 20 20 71 75 61 6c 69 ot.quality:................quali
0fe0 74 79 20 3d 20 22 62 65 73 74 22 00 00 00 08 20 20 20 20 20 20 20 20 00 00 00 2c 20 20 20 20 20 ty.=."best"...............,.....
1000 20 20 20 64 6f 77 6e 6c 6f 61 64 5f 76 69 64 65 6f 28 75 72 6c 2c 20 6f 75 74 70 75 74 2c 20 71 ...download_video(url,.output,.q
1020 75 61 6c 69 74 79 29 00 00 00 09 20 20 20 20 65 6c 73 65 3a 00 00 00 21 20 20 20 20 20 20 20 20 uality)........else:...!........
1040 23 20 4d 6f 64 6f 20 6c c3 ad 6e 65 61 20 64 65 20 63 6f 6d 61 6e 64 6f 73 00 00 00 22 20 20 20 #.Modo.l..nea.de.comandos..."...
1060 20 20 20 20 20 61 72 67 73 20 3d 20 70 61 72 73 65 72 2e 70 61 72 73 65 5f 61 72 67 73 28 29 00 .....args.=.parser.parse_args().
1080 00 00 3b 20 20 20 20 20 20 20 20 64 6f 77 6e 6c 6f 61 64 5f 76 69 64 65 6f 28 61 72 67 73 2e 75 ..;........download_video(args.u
10a0 72 6c 2c 20 61 72 67 73 2e 6f 75 74 70 75 74 2c 20 61 72 67 73 2e 71 75 61 6c 69 74 79 29 00 00 rl,.args.output,.args.quality)..
10c0 00 00 00 00 00 1a 69 66 20 5f 5f 6e 61 6d 65 5f 5f 20 3d 3d 20 22 5f 5f 6d 61 69 6e 5f 5f 22 3a ......if.__name__.==."__main__":
10e0 00 00 00 0a 20 20 20 20 6d 61 69 6e 28 29 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 57 00 ........main()5...............W.
1100 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 0b 00 00 00 00 00 00 01 00 ................................
1120 00 00 00 00 00 00 35 81 5f d0 00 00 00 04 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 05 00 00 ......5._.......................
1140 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1280 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 ................................
12a0 00 00 00 56 00 00 00 00 00 00 00 00 6a 0e 3c f2 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 ...V........j.<.................
12c0 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 ...............................5
12e0 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 56 00 00 00 0a 00 00 00 00 .......................V........
1300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7a 0b 00 00 00 00 00 00 35 81 5f d0 00 00 00 05 00 ...............z.......5._......
1320 00 00 07 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 45 00 00 00 23 00 00 00 00 ff ff ff ff 00 ..................E...#.........
1340 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 45 00 00 00 ............................E...
1480 23 00 00 00 00 00 00 00 45 00 00 00 2c 00 00 00 00 00 00 00 76 00 00 00 2c 00 00 00 00 6a 0e 3c #.......E...,.......v...,....j.<
14a0 f6 04 01 00 00 00 00 00 f5 18 00 00 00 44 00 00 00 46 00 00 00 57 00 00 00 01 00 00 00 33 20 20 .............D...F...W.......3..
14c0 20 20 20 20 20 20 70 72 69 6e 74 28 22 3d 3d 3d 20 56 69 64 65 6f 20 44 6f 77 6e 6c 6f 61 64 65 ......print("===.Video.Downloade
14e0 72 20 66 6f 72 20 53 74 75 64 79 20 3d 3d 3d 22 29 35 81 f5 18 00 00 00 00 44 00 00 00 23 00 00 r.for.Study.===")5.......D...#..
1500 00 00 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 2f 09 00 00 00 00 00 00 0a 00 00 00 00 00 00 ................./..............
1520 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 06 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 .........5._....................
1540 07 00 00 00 45 00 00 00 23 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 ....E...#.......................
1560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 45 00 00 00 23 00 00 00 00 00 00 00 45 00 00 00 2c 00 ..............E...#.......E...,.
16a0 00 00 00 00 00 00 76 00 00 00 2c 00 00 00 00 6a 0e 3c f6 04 01 00 00 00 00 00 f5 18 00 00 00 44 ......v...,....j.<.............D
16c0 00 00 00 46 00 00 00 57 00 00 00 01 00 00 00 29 20 20 20 20 20 20 20 20 70 72 69 6e 74 28 22 3d ...F...W.......)........print("=
16e0 3d 3d 20 56 69 64 65 6f 20 44 6f 77 6e 6c 6f 61 64 65 72 20 3d 3d 3d 22 29 35 81 f5 18 00 00 00 ==.Video.Downloader.===")5......
1700 00 44 00 00 00 23 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 2f 09 00 00 00 00 00 .D...#.................../......
1720 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 07 00 00 00 09 00 00 00 .................5._............
1740 00 00 00 00 00 00 00 00 08 00 00 00 3c 00 00 00 42 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 ............<...B...............
1760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3c 00 00 00 42 00 00 00 00 00 ......................<...B.....
18a0 00 00 3c 00 00 00 5a 00 00 00 00 00 00 00 76 00 00 00 5a 00 00 00 00 6a 0e 3c fa 04 01 00 00 00 ..<...Z.......v...Z....j.<......
18c0 00 00 f5 18 00 00 00 3b 00 00 00 3d 00 00 00 57 00 00 00 01 00 00 00 5d 20 20 20 20 70 61 72 73 .......;...=...W.......]....pars
18e0 65 72 20 3d 20 61 72 67 70 61 72 73 65 2e 41 72 67 75 6d 65 6e 74 50 61 72 73 65 72 28 64 65 73 er.=.argparse.ArgumentParser(des
1900 63 72 69 70 74 69 6f 6e 3d 27 56 69 64 65 6f 20 64 6f 77 6e 6c 6f 61 64 65 72 20 66 6f 72 20 65 cription='Video.downloader.for.e
1920 64 75 63 61 74 69 6f 6e 61 6c 20 70 75 72 70 6f 73 65 73 27 29 35 81 f5 18 00 00 00 00 3b 00 00 ducational.purposes')5.......;..
1940 00 42 00 00 00 00 00 00 00 19 00 00 00 00 00 00 00 00 00 00 00 5d 07 00 00 00 00 00 00 19 00 00 .B...................]..........
1960 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 08 00 00 00 0a 00 00 00 00 00 00 00 .............5._................
1980 00 00 00 00 09 00 00 00 3c 00 00 00 32 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 ........<...2...................
19a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3c 00 00 00 42 00 00 00 00 00 00 00 3c 00 ..................<...B.......<.
1ae0 00 00 5a 00 00 00 00 00 00 00 76 00 00 00 5a 00 00 00 00 6a 0e 3c fd 04 01 00 00 00 00 00 f5 18 ..Z.......v...Z....j.<..........
1b00 00 00 00 3b 00 00 00 3d 00 00 00 57 00 00 00 01 00 00 00 44 20 20 20 20 70 61 72 73 65 72 20 3d ...;...=...W.......D....parser.=
1b20 20 61 72 67 70 61 72 73 65 2e 41 72 67 75 6d 65 6e 74 50 61 72 73 65 72 28 64 65 73 63 72 69 70 .argparse.ArgumentParser(descrip
1b40 74 69 6f 6e 3d 27 56 69 64 65 6f 20 64 6f 77 6e 6c 6f 61 64 65 72 27 29 35 81 f5 18 00 00 00 00 tion='Video.downloader')5.......
1b60 3b 00 00 00 32 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 4d 07 00 00 00 00 00 00 ;...2...................M.......
1b80 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 09 00 00 00 0b 00 00 00 00 ................5._.............
1ba0 00 00 00 00 00 00 00 0a 00 00 00 01 00 00 00 08 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 ................................
1bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3c 00 00 00 42 00 00 00 00 00 00 .....................<...B......
1d00 00 3c 00 00 00 5a 00 00 00 00 00 00 00 76 00 00 00 5a 00 00 00 00 6a 0e 3d 19 04 01 00 00 00 00 .<...Z.......v...Z....j.=.......
1d20 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 57 00 00 00 09 69 6d 70 6f 72 74 20 6f 73 ..................W....import.os
1d40 00 00 00 0a 69 6d 70 6f 72 74 20 73 79 73 00 00 00 0b 69 6d 70 6f 72 74 20 74 69 6d 65 00 00 00 ....import.sys....import.time...
1d60 1d 66 72 6f 6d 20 64 61 74 65 74 69 6d 65 20 69 6d 70 6f 72 74 20 64 61 74 65 74 69 6d 65 00 00 .from.datetime.import.datetime..
1d80 00 0f 69 6d 70 6f 72 74 20 61 72 67 70 61 72 73 65 00 00 00 0d 69 6d 70 6f 72 74 20 79 74 5f 64 ..import.argparse....import.yt_d
1da0 6c 70 00 00 00 00 00 00 00 3a 64 65 66 20 64 6f 77 6e 6c 6f 61 64 5f 76 69 64 65 6f 28 75 72 6c lp.......:def.download_video(url
1dc0 2c 20 6f 75 74 70 75 74 5f 70 61 74 68 3d 4e 6f 6e 65 2c 20 71 75 61 6c 69 74 79 3d 22 62 65 73 ,.output_path=None,.quality="bes
1de0 74 22 29 3a 00 00 00 07 20 20 20 20 22 22 22 00 00 00 2d 20 20 20 20 44 6f 77 6e 6c 6f 61 64 73 t"):........"""...-....Downloads
1e00 20 61 20 76 69 64 65 6f 20 66 72 6f 6d 20 61 20 55 52 4c 20 75 73 69 6e 67 20 79 74 2d 64 6c 70 .a.video.from.a.URL.using.yt-dlp
1e20 00 00 00 04 20 20 20 20 00 00 00 09 20 20 20 20 41 72 67 73 3a 00 00 00 2f 20 20 20 20 20 20 20 ................Args:.../.......
1e40 20 75 72 6c 20 28 73 74 72 29 3a 20 55 52 4c 20 6f 66 20 74 68 65 20 76 69 64 65 6f 20 74 6f 20 .url.(str):.URL.of.the.video.to.
1e60 64 6f 77 6e 6c 6f 61 64 00 00 00 3b 20 20 20 20 20 20 20 20 6f 75 74 70 75 74 5f 70 61 74 68 20 download...;........output_path.
1e80 28 73 74 72 2c 20 6f 70 74 69 6f 6e 61 6c 29 3a 20 50 61 74 68 20 74 6f 20 73 61 76 65 20 74 68 (str,.optional):.Path.to.save.th
1ea0 65 20 76 69 64 65 6f 00 00 00 40 20 20 20 20 20 20 20 20 71 75 61 6c 69 74 79 20 28 73 74 72 2c e.video...@........quality.(str,
1ec0 20 6f 70 74 69 6f 6e 61 6c 29 3a 20 56 69 64 65 6f 20 71 75 61 6c 69 74 79 20 28 64 65 66 61 75 .optional):.Video.quality.(defau
1ee0 6c 74 3a 20 22 62 65 73 74 22 29 00 00 00 07 20 20 20 20 22 22 22 00 00 00 2e 20 20 20 20 23 20 lt:."best")........"""........#.
1f00 43 72 65 61 74 65 20 6f 75 74 70 75 74 20 66 6f 6c 64 65 72 20 69 66 20 69 74 20 64 6f 65 73 6e Create.output.folder.if.it.doesn
1f20 27 74 20 65 78 69 73 74 00 00 00 13 20 20 20 20 69 66 20 6f 75 74 70 75 74 5f 70 61 74 68 3a 00 't.exist........if.output_path:.
1f40 00 00 2f 20 20 20 20 20 20 20 20 6f 73 2e 6d 61 6b 65 64 69 72 73 28 6f 75 74 70 75 74 5f 70 61 ../........os.makedirs(output_pa
1f60 74 68 2c 20 65 78 69 73 74 5f 6f 6b 3d 54 72 75 65 29 00 00 00 09 20 20 20 20 65 6c 73 65 3a 00 th,.exist_ok=True)........else:.
1f80 00 00 3c 20 20 20 20 20 20 20 20 6f 75 74 70 75 74 5f 70 61 74 68 20 3d 20 6f 73 2e 70 61 74 68 ..<........output_path.=.os.path
1fa0 2e 6a 6f 69 6e 28 6f 73 2e 67 65 74 63 77 64 28 29 2c 20 22 64 6f 77 6e 6c 6f 61 64 73 22 29 00 .join(os.getcwd(),."downloads").
1fc0 00 00 2f 20 20 20 20 20 20 20 20 6f 73 2e 6d 61 6b 65 64 69 72 73 28 6f 75 74 70 75 74 5f 70 61 ../........os.makedirs(output_pa
1fe0 74 68 2c 20 65 78 69 73 74 5f 6f 6b 3d 54 72 75 65 29 00 00 00 04 20 20 20 20 00 00 00 20 20 20 th,.exist_ok=True)..............
2000 20 20 23 20 43 6f 6e 66 69 67 75 72 65 20 64 6f 77 6e 6c 6f 61 64 20 6f 70 74 69 6f 6e 73 00 00 ..#.Configure.download.options..
2020 00 10 20 20 20 20 79 64 6c 5f 6f 70 74 73 20 3d 20 7b 00 00 00 1a 20 20 20 20 20 20 20 20 27 66 ......ydl_opts.=.{............'f
2040 6f 72 6d 61 74 27 3a 20 71 75 61 6c 69 74 79 2c 00 00 00 42 20 20 20 20 20 20 20 20 27 6f 75 74 ormat':.quality,...B........'out
2060 74 6d 70 6c 27 3a 20 6f 73 2e 70 61 74 68 2e 6a 6f 69 6e 28 6f 75 74 70 75 74 5f 70 61 74 68 2c tmpl':.os.path.join(output_path,
2080 20 27 25 28 74 69 74 6c 65 29 73 2e 25 28 65 78 74 29 73 27 29 2c 00 00 00 1b 20 20 20 20 20 20 .'%(title)s.%(ext)s'),..........
20a0 20 20 27 6e 6f 70 6c 61 79 6c 69 73 74 27 3a 20 54 72 75 65 2c 00 00 00 2a 20 20 20 20 20 20 20 ..'noplaylist':.True,...*.......
20c0 20 27 70 72 6f 67 72 65 73 73 5f 68 6f 6f 6b 73 27 3a 20 5b 70 72 6f 67 72 65 73 73 5f 68 6f 6f .'progress_hooks':.[progress_hoo
20e0 6b 5d 2c 00 00 00 05 20 20 20 20 7d 00 00 00 04 20 20 20 20 00 00 00 2b 20 20 20 20 70 72 69 6e k],........}...........+....prin
2100 74 28 66 22 53 74 61 72 74 69 6e 67 20 64 6f 77 6e 6c 6f 61 64 20 66 72 6f 6d 3a 20 7b 75 72 6c t(f"Starting.download.from:.{url
2120 7d 22 29 00 00 00 26 20 20 20 20 70 72 69 6e 74 28 66 22 53 61 76 69 6e 67 20 74 6f 3a 20 7b 6f }")...&....print(f"Saving.to:.{o
2140 75 74 70 75 74 5f 70 61 74 68 7d 22 29 00 00 00 29 20 20 20 20 70 72 69 6e 74 28 66 22 53 65 6c utput_path}")...)....print(f"Sel
2160 65 63 74 65 64 20 71 75 61 6c 69 74 79 3a 20 7b 71 75 61 6c 69 74 79 7d 22 29 00 00 00 04 20 20 ected.quality:.{quality}")......
2180 20 20 00 00 00 08 20 20 20 20 74 72 79 3a 00 00 00 18 20 20 20 20 20 20 20 20 23 20 53 74 61 72 ..........try:............#.Star
21a0 74 20 64 6f 77 6e 6c 6f 61 64 00 00 00 2f 20 20 20 20 20 20 20 20 77 69 74 68 20 79 74 5f 64 6c t.download.../........with.yt_dl
21c0 70 2e 59 6f 75 74 75 62 65 44 4c 28 79 64 6c 5f 6f 70 74 73 29 20 61 73 20 79 64 6c 3a 00 00 00 p.YoutubeDL(ydl_opts).as.ydl:...
21e0 37 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 20 3d 20 79 64 6c 2e 65 78 74 72 61 63 74 5f 7............info.=.ydl.extract_
2200 69 6e 66 6f 28 75 72 6c 2c 20 64 6f 77 6e 6c 6f 61 64 3d 54 72 75 65 29 00 00 00 34 20 20 20 20 info(url,.download=True)...4....
2220 20 20 20 20 20 20 20 20 76 69 64 65 6f 5f 74 69 74 6c 65 20 3d 20 69 6e 66 6f 2e 67 65 74 28 27 ........video_title.=.info.get('
2240 74 69 74 6c 65 27 2c 20 27 56 69 64 65 6f 27 29 00 00 00 39 20 20 20 20 20 20 20 20 20 20 20 20 title',.'Video')...9............
2260 70 72 69 6e 74 28 66 22 5c 6e 44 6f 77 6e 6c 6f 61 64 20 63 6f 6d 70 6c 65 74 65 64 3a 20 7b 76 print(f"\nDownload.completed:.{v
2280 69 64 65 6f 5f 74 69 74 6c 65 7d 22 29 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 ideo_title}")...2............pri
22a0 6e 74 28 66 22 46 69 6c 65 20 73 61 76 65 64 20 74 6f 3a 20 7b 6f 75 74 70 75 74 5f 70 61 74 68 nt(f"File.saved.to:.{output_path
22c0 7d 22 29 00 00 00 1a 20 20 20 20 65 78 63 65 70 74 20 45 78 63 65 70 74 69 6f 6e 20 61 73 20 65 }")........except.Exception.as.e
22e0 3a 00 00 00 31 20 20 20 20 20 20 20 20 70 72 69 6e 74 28 66 22 45 72 72 6f 72 20 64 75 72 69 6e :...1........print(f"Error.durin
2300 67 20 64 6f 77 6e 6c 6f 61 64 3a 20 7b 73 74 72 28 65 29 7d 22 29 00 00 00 14 20 20 20 20 20 20 g.download:.{str(e)}")..........
2320 20 20 72 65 74 75 72 6e 20 46 61 6c 73 65 00 00 00 04 20 20 20 20 00 00 00 0f 20 20 20 20 72 65 ..return.False................re
2340 74 75 72 6e 20 54 72 75 65 00 00 00 00 00 00 00 15 64 65 66 20 70 72 6f 67 72 65 73 73 5f 68 6f turn.True........def.progress_ho
2360 6f 6b 28 64 29 3a 00 00 00 24 20 20 20 20 22 22 22 44 69 73 70 6c 61 79 73 20 64 6f 77 6e 6c 6f ok(d):...$...."""Displays.downlo
2380 61 64 20 70 72 6f 67 72 65 73 73 22 22 22 00 00 00 24 20 20 20 20 69 66 20 64 5b 27 73 74 61 74 ad.progress"""...$....if.d['stat
23a0 75 73 27 5d 20 3d 3d 20 27 64 6f 77 6e 6c 6f 61 64 69 6e 67 27 3a 00 00 00 2e 20 20 20 20 20 20 us'].==.'downloading':..........
23c0 20 20 70 65 72 63 65 6e 74 20 3d 20 64 2e 67 65 74 28 27 5f 70 65 72 63 65 6e 74 5f 73 74 72 27 ..percent.=.d.get('_percent_str'
23e0 2c 20 27 4e 2f 41 27 29 00 00 00 2a 20 20 20 20 20 20 20 20 73 70 65 65 64 20 3d 20 64 2e 67 65 ,.'N/A')...*........speed.=.d.ge
2400 74 28 27 5f 73 70 65 65 64 5f 73 74 72 27 2c 20 27 4e 2f 41 27 29 00 00 00 26 20 20 20 20 20 20 t('_speed_str',.'N/A')...&......
2420 20 20 65 74 61 20 3d 20 64 2e 67 65 74 28 27 5f 65 74 61 5f 73 74 72 27 2c 20 27 4e 2f 41 27 29 ..eta.=.d.get('_eta_str',.'N/A')
2440 00 00 00 4d 20 20 20 20 20 20 20 20 70 72 69 6e 74 28 66 22 5c 72 50 72 6f 67 72 65 73 73 3a 20 ...M........print(f"\rProgress:.
2460 7b 70 65 72 63 65 6e 74 7d 20 7c 20 53 70 65 65 64 3a 20 7b 73 70 65 65 64 7d 20 7c 20 45 54 41 {percent}.|.Speed:.{speed}.|.ETA
2480 3a 20 7b 65 74 61 7d 22 2c 20 65 6e 64 3d 27 27 29 00 00 00 23 20 20 20 20 65 6c 69 66 20 64 5b :.{eta}",.end='')...#....elif.d[
24a0 27 73 74 61 74 75 73 27 5d 20 3d 3d 20 27 66 69 6e 69 73 68 65 64 27 3a 00 00 00 30 20 20 20 20 'status'].==.'finished':...0....
24c0 20 20 20 20 70 72 69 6e 74 28 22 5c 6e 50 72 6f 63 65 73 73 69 6e 67 20 64 6f 77 6e 6c 6f 61 64 ....print("\nProcessing.download
24e0 65 64 20 66 69 6c 65 2e 2e 2e 22 29 00 00 00 00 00 00 00 0b 64 65 66 20 6d 61 69 6e 28 29 3a 00 ed.file...")........def.main():.
2500 00 00 44 20 20 20 20 70 61 72 73 65 72 20 3d 20 61 72 67 70 61 72 73 65 2e 41 72 67 75 6d 65 6e ..D....parser.=.argparse.Argumen
2520 74 50 61 72 73 65 72 28 64 65 73 63 72 69 70 74 69 6f 6e 3d 27 76 69 64 65 6f 20 64 6f 77 6e 6c tParser(description='video.downl
2540 6f 61 64 65 72 27 29 00 00 00 4d 20 20 20 20 70 61 72 73 65 72 2e 61 64 64 5f 61 72 67 75 6d 65 oader')...M....parser.add_argume
2560 6e 74 28 27 75 72 6c 27 2c 20 74 79 70 65 3d 73 74 72 2c 20 68 65 6c 70 3d 27 55 52 4c 20 6f 66 nt('url',.type=str,.help='URL.of
2580 20 74 68 65 20 76 69 64 65 6f 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 27 29 00 00 00 54 20 20 20 20 .the.video.to.download')...T....
25a0 70 61 72 73 65 72 2e 61 64 64 5f 61 72 67 75 6d 65 6e 74 28 27 2d 6f 27 2c 20 27 2d 2d 6f 75 74 parser.add_argument('-o',.'--out
25c0 70 75 74 27 2c 20 74 79 70 65 3d 73 74 72 2c 20 68 65 6c 70 3d 27 46 6f 6c 64 65 72 20 74 6f 20 put',.type=str,.help='Folder.to.
25e0 73 61 76 65 20 74 68 65 20 76 69 64 65 6f 27 29 00 00 00 45 20 20 20 20 70 61 72 73 65 72 2e 61 save.the.video')...E....parser.a
2600 64 64 5f 61 72 67 75 6d 65 6e 74 28 27 2d 71 27 2c 20 27 2d 2d 71 75 61 6c 69 74 79 27 2c 20 74 dd_argument('-q',.'--quality',.t
2620 79 70 65 3d 73 74 72 2c 20 64 65 66 61 75 6c 74 3d 27 62 65 73 74 27 2c 20 00 00 00 4e 20 20 20 ype=str,.default='best',....N...
2640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 65 6c 70 3d 27 56 69 64 65 6f .....................help='Video
2660 20 71 75 61 6c 69 74 79 20 28 62 65 73 74 2c 20 77 6f 72 73 74 2c 20 31 30 38 30 70 2c 20 37 32 .quality.(best,.worst,.1080p,.72
2680 30 70 2c 20 65 74 63 2e 29 27 29 00 00 00 04 20 20 20 20 00 00 00 20 20 20 20 20 23 20 69 66 20 0p,.etc.)')................#.if.
26a0 61 72 67 75 6d 65 6e 74 73 20 77 65 72 65 20 70 72 6f 76 69 64 65 64 00 00 00 1a 20 20 20 20 69 arguments.were.provided........i
26c0 66 20 6c 65 6e 28 73 79 73 2e 61 72 67 76 29 20 3d 3d 20 31 3a 00 00 00 19 20 20 20 20 20 20 20 f.len(sys.argv).==.1:...........
26e0 20 23 20 69 66 20 6e 6f 20 61 72 67 75 6d 65 6e 74 73 00 00 00 28 20 20 20 20 20 20 20 20 70 72 .#.if.no.arguments...(........pr
2700 69 6e 74 28 22 3d 3d 3d 20 56 69 64 65 6f 20 44 6f 77 6e 6c 6f 61 64 65 72 3d 3d 3d 22 29 00 00 int("===.Video.Downloader===")..
2720 00 2c 20 20 20 20 20 20 20 20 75 72 6c 20 3d 20 69 6e 70 75 74 28 22 45 6e 74 65 72 20 74 68 65 .,........url.=.input("Enter.the
2740 20 76 69 64 65 6f 20 55 52 4c 3a 20 22 29 00 00 00 51 20 20 20 20 20 20 20 20 6f 75 74 70 75 74 .video.URL:.")...Q........output
2760 20 3d 20 69 6e 70 75 74 28 22 44 65 73 74 69 6e 61 74 69 6f 6e 20 66 6f 6c 64 65 72 20 28 6c 65 .=.input("Destination.folder.(le
2780 61 76 65 20 62 6c 61 6e 6b 20 74 6f 20 75 73 65 20 27 2e 2f 64 6f 77 6e 6c 6f 61 64 73 27 29 3a ave.blank.to.use.'./downloads'):
27a0 20 22 29 00 00 00 48 20 20 20 20 20 20 20 20 71 75 61 6c 69 74 79 20 3d 20 69 6e 70 75 74 28 22 .")...H........quality.=.input("
27c0 44 65 73 69 72 65 64 20 71 75 61 6c 69 74 79 20 28 6c 65 61 76 65 20 62 6c 61 6e 6b 20 74 6f 20 Desired.quality.(leave.blank.to.
27e0 75 73 65 20 27 62 65 73 74 27 29 3a 20 22 29 00 00 00 08 20 20 20 20 20 20 20 20 00 00 00 21 20 use.'best'):.")...............!.
2800 20 20 20 20 20 20 20 23 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 73 20 69 66 20 65 6d 70 74 79 .......#.default.values.if.empty
2820 00 00 00 16 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 6f 75 74 70 75 74 3a 00 00 00 19 20 20 ............if.not.output:......
2840 20 20 20 20 20 20 20 20 20 20 6f 75 74 70 75 74 20 3d 20 4e 6f 6e 65 00 00 00 17 20 20 20 20 20 ..........output.=.None.........
2860 20 20 20 69 66 20 6e 6f 74 20 71 75 61 6c 69 74 79 3a 00 00 00 1c 20 20 20 20 20 20 20 20 20 20 ...if.not.quality:..............
2880 20 20 71 75 61 6c 69 74 79 20 3d 20 22 62 65 73 74 22 00 00 00 08 20 20 20 20 20 20 20 20 00 00 ..quality.=."best"..............
28a0 00 2c 20 20 20 20 20 20 20 20 64 6f 77 6e 6c 6f 61 64 5f 76 69 64 65 6f 28 75 72 6c 2c 20 6f 75 .,........download_video(url,.ou
28c0 74 70 75 74 2c 20 71 75 61 6c 69 74 79 29 00 00 00 09 20 20 20 20 65 6c 73 65 3a 00 00 00 1b 20 tput,.quality)........else:.....
28e0 20 20 20 20 20 20 20 23 20 43 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 6d 6f 64 65 00 00 00 22 20 20 .......#.Command-line.mode..."..
2900 20 20 20 20 20 20 61 72 67 73 20 3d 20 70 61 72 73 65 72 2e 70 61 72 73 65 5f 61 72 67 73 28 29 ......args.=.parser.parse_args()
2920 00 00 00 3b 20 20 20 20 20 20 20 20 64 6f 77 6e 6c 6f 61 64 5f 76 69 64 65 6f 28 61 72 67 73 2e ...;........download_video(args.
2940 75 72 6c 2c 20 61 72 67 73 2e 6f 75 74 70 75 74 2c 20 61 72 67 73 2e 71 75 61 6c 69 74 79 29 00 url,.args.output,.args.quality).
2960 00 00 00 00 00 00 1a 69 66 20 5f 5f 6e 61 6d 65 5f 5f 20 3d 3d 20 22 5f 5f 6d 61 69 6e 5f 5f 22 .......if.__name__.==."__main__"
2980 3a 00 00 00 0a 20 20 20 20 6d 61 69 6e 28 29 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 57 :........main()5...............W
29a0 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 57 0b 00 00 00 00 00 00 01 .......................W........
29c0 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 0a 00 00 00 0c 00 00 00 00 00 00 00 00 00 00 00 0b 00 .......5._......................
29e0 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2b20 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 42 00 00 00 00 00 00 00 01 00 00 00 5a 00 00 00 ................B...........Z...
2b40 00 00 00 00 76 00 00 00 5a 00 00 00 00 6a 0e 3d 1a 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 ....v...Z....j.=................
2b60 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2b80 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 56 00 00 00 0a 00 00 00 5.......................V.......
2ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 57 0b 00 00 00 00 00 00 35 81 5f d0 00 00 00 0b ................W.......5._.....
2bc0 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00 0c 00 00 00 45 00 00 00 0f 00 00 00 00 ff ff ff ff ...................E............
2be0 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 45 00 00 .............................E..
2d20 00 10 00 00 00 00 00 00 00 45 00 00 00 0f 00 00 00 00 00 00 00 76 00 00 00 0f 00 00 00 00 6a 0e .........E...........v........j.
2d40 3d 1c 04 01 00 00 00 00 00 f5 18 00 00 00 44 00 00 00 46 00 00 00 57 00 00 00 01 00 00 00 29 20 =.............D...F...W.......).
2d60 20 20 20 20 20 20 20 70 72 69 6e 74 28 22 3d 3d 3d 20 76 69 64 65 6f 20 64 6f 77 6e 6c 6f 61 64 .......print("===.video.download
2d80 65 72 20 3d 3d 3d 22 29 35 81 f5 18 00 00 00 00 44 00 00 00 0f 00 00 00 00 00 00 00 02 00 00 00 er.===")5.......D...............
2da0 00 00 00 00 00 00 00 00 02 09 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2dc0 35 81 5f d0 00 00 00 0c 00 00 00 0e 00 00 00 00 00 00 00 00 00 00 00 0d 00 00 00 45 00 00 00 10 5._........................E....
2de0 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2f20 00 00 00 00 00 45 00 00 00 10 00 00 00 00 00 00 00 45 00 00 00 0f 00 00 00 00 00 00 00 76 00 00 .....E...........E...........v..
2f40 00 0f 00 00 00 00 6a 0e 3d 1d 04 01 00 00 00 00 00 f5 18 00 00 00 44 00 00 00 46 00 00 00 57 00 ......j.=.............D...F...W.
2f60 00 00 01 00 00 00 27 20 20 20 20 20 20 20 20 70 72 69 6e 74 28 22 3d 20 76 69 64 65 6f 20 64 6f ......'........print("=.video.do
2f80 77 6e 6c 6f 61 64 65 72 20 3d 3d 3d 22 29 35 81 f5 18 00 00 00 00 44 00 00 00 10 00 00 00 00 00 wnloader.===")5.......D.........
2fa0 00 00 01 00 00 00 00 00 00 00 00 00 00 00 03 09 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 ................................
2fc0 00 00 00 00 00 00 35 81 5f d0 00 00 00 0d 00 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 0e 00 00 ......5._.......................
2fe0 00 45 00 00 00 20 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .E..............................
3000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3120 00 00 00 00 00 00 00 00 00 00 00 45 00 00 00 20 00 00 00 00 00 00 00 45 00 00 00 22 00 00 00 00 ...........E...........E..."....
3140 00 00 00 76 00 00 00 22 00 00 00 00 6a 0e 3d 1e 04 01 00 00 00 07 00 f5 18 00 00 00 44 00 00 00 ...v..."....j.=.............D...
3160 46 00 00 00 57 00 00 00 01 00 00 00 26 20 20 20 20 20 20 20 20 70 72 69 6e 74 28 22 3d 76 69 64 F...W.......&........print("=vid
3180 65 6f 20 64 6f 77 6e 6c 6f 61 64 65 72 20 3d 3d 3d 22 29 35 81 f5 18 00 00 00 00 44 00 00 00 20 eo.downloader.===")5.......D....
31a0 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 13 09 00 00 00 00 00 00 03 00 00 00 00 ................................
31c0 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 ...........5._..................
31e0 00 00 0f 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 05 00 00 00 00 00 00 00 00 00 00 00 ................................
3200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
32a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
32c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
32e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 57 00 00 00 ............................W...
3340 00 00 00 00 00 00 00 00 56 00 00 00 00 00 00 00 00 6a 14 bd 7f 04 01 00 00 00 08 00 f5 18 00 00 ........V........j..............
3360 00 00 00 00 00 00 00 00 00 00 00 00 00 57 00 00 00 09 69 6d 70 6f 72 74 20 6f 73 00 00 00 0a 69 .............W....import.os....i
3380 6d 70 6f 72 74 20 73 79 73 00 00 00 0b 69 6d 70 6f 72 74 20 74 69 6d 65 00 00 00 1d 66 72 6f 6d mport.sys....import.time....from
33a0 20 64 61 74 65 74 69 6d 65 20 69 6d 70 6f 72 74 20 64 61 74 65 74 69 6d 65 00 00 00 0f 69 6d 70 .datetime.import.datetime....imp
33c0 6f 72 74 20 61 72 67 70 61 72 73 65 00 00 00 0d 69 6d 70 6f 72 74 20 79 74 5f 64 6c 70 00 00 00 ort.argparse....import.yt_dlp...
33e0 00 00 00 00 3a 64 65 66 20 64 6f 77 6e 6c 6f 61 64 5f 76 69 64 65 6f 28 75 72 6c 2c 20 6f 75 74 ....:def.download_video(url,.out
3400 70 75 74 5f 70 61 74 68 3d 4e 6f 6e 65 2c 20 71 75 61 6c 69 74 79 3d 22 62 65 73 74 22 29 3a 00 put_path=None,.quality="best"):.
3420 00 00 07 20 20 20 20 22 22 22 00 00 00 2d 20 20 20 20 64 6f 77 6e 6c 6f 61 64 73 20 61 20 76 69 ......."""...-....downloads.a.vi
3440 64 65 6f 20 66 72 6f 6d 20 61 20 75 72 6c 20 75 73 69 6e 67 20 79 74 2d 64 6c 70 00 00 00 04 20 deo.from.a.url.using.yt-dlp.....
3460 20 20 20 00 00 00 09 20 20 20 20 61 72 67 73 3a 00 00 00 2f 20 20 20 20 20 20 20 20 75 72 6c 20 ...........args:.../........url.
3480 28 73 74 72 29 3a 20 75 72 6c 20 6f 66 20 74 68 65 20 76 69 64 65 6f 20 74 6f 20 64 6f 77 6e 6c (str):.url.of.the.video.to.downl
34a0 6f 61 64 00 00 00 3b 20 20 20 20 20 20 20 20 6f 75 74 70 75 74 5f 70 61 74 68 20 28 73 74 72 2c oad...;........output_path.(str,
34c0 20 6f 70 74 69 6f 6e 61 6c 29 3a 20 70 61 74 68 20 74 6f 20 73 61 76 65 20 74 68 65 20 76 69 64 .optional):.path.to.save.the.vid
34e0 65 6f 00 00 00 40 20 20 20 20 20 20 20 20 71 75 61 6c 69 74 79 20 28 73 74 72 2c 20 6f 70 74 69 eo...@........quality.(str,.opti
3500 6f 6e 61 6c 29 3a 20 76 69 64 65 6f 20 71 75 61 6c 69 74 79 20 28 64 65 66 61 75 6c 74 3a 20 22 onal):.video.quality.(default:."
3520 62 65 73 74 22 29 00 00 00 07 20 20 20 20 22 22 22 00 00 00 2e 20 20 20 20 23 20 63 72 65 61 74 best")........"""........#.creat
3540 65 20 6f 75 74 70 75 74 20 66 6f 6c 64 65 72 20 69 66 20 69 74 20 64 6f 65 73 6e 27 74 20 65 78 e.output.folder.if.it.doesn't.ex
3560 69 73 74 00 00 00 13 20 20 20 20 69 66 20 6f 75 74 70 75 74 5f 70 61 74 68 3a 00 00 00 2f 20 20 ist........if.output_path:.../..
3580 20 20 20 20 20 20 6f 73 2e 6d 61 6b 65 64 69 72 73 28 6f 75 74 70 75 74 5f 70 61 74 68 2c 20 65 ......os.makedirs(output_path,.e
35a0 78 69 73 74 5f 6f 6b 3d 54 72 75 65 29 00 00 00 09 20 20 20 20 65 6c 73 65 3a 00 00 00 3c 20 20 xist_ok=True)........else:...<..
35c0 20 20 20 20 20 20 6f 75 74 70 75 74 5f 70 61 74 68 20 3d 20 6f 73 2e 70 61 74 68 2e 6a 6f 69 6e ......output_path.=.os.path.join
35e0 28 6f 73 2e 67 65 74 63 77 64 28 29 2c 20 22 64 6f 77 6e 6c 6f 61 64 73 22 29 00 00 00 2f 20 20 (os.getcwd(),."downloads").../..
3600 20 20 20 20 20 20 6f 73 2e 6d 61 6b 65 64 69 72 73 28 6f 75 74 70 75 74 5f 70 61 74 68 2c 20 65 ......os.makedirs(output_path,.e
3620 78 69 73 74 5f 6f 6b 3d 54 72 75 65 29 00 00 00 04 20 20 20 20 00 00 00 20 20 20 20 20 23 20 63 xist_ok=True)................#.c
3640 6f 6e 66 69 67 75 72 65 20 64 6f 77 6e 6c 6f 61 64 20 6f 70 74 69 6f 6e 73 00 00 00 10 20 20 20 onfigure.download.options.......
3660 20 79 64 6c 5f 6f 70 74 73 20 3d 20 7b 00 00 00 1a 20 20 20 20 20 20 20 20 27 66 6f 72 6d 61 74 .ydl_opts.=.{............'format
3680 27 3a 20 71 75 61 6c 69 74 79 2c 00 00 00 42 20 20 20 20 20 20 20 20 27 6f 75 74 74 6d 70 6c 27 ':.quality,...B........'outtmpl'
36a0 3a 20 6f 73 2e 70 61 74 68 2e 6a 6f 69 6e 28 6f 75 74 70 75 74 5f 70 61 74 68 2c 20 27 25 28 74 :.os.path.join(output_path,.'%(t
36c0 69 74 6c 65 29 73 2e 25 28 65 78 74 29 73 27 29 2c 00 00 00 1b 20 20 20 20 20 20 20 20 27 6e 6f itle)s.%(ext)s'),............'no
36e0 70 6c 61 79 6c 69 73 74 27 3a 20 54 72 75 65 2c 00 00 00 2a 20 20 20 20 20 20 20 20 27 70 72 6f playlist':.True,...*........'pro
3700 67 72 65 73 73 5f 68 6f 6f 6b 73 27 3a 20 5b 70 72 6f 67 72 65 73 73 5f 68 6f 6f 6b 5d 2c 00 00 gress_hooks':.[progress_hook],..
3720 00 05 20 20 20 20 7d 00 00 00 04 20 20 20 20 00 00 00 2b 20 20 20 20 70 72 69 6e 74 28 66 22 73 ......}...........+....print(f"s
3740 74 61 72 74 69 6e 67 20 64 6f 77 6e 6c 6f 61 64 20 66 72 6f 6d 3a 20 7b 75 72 6c 7d 22 29 00 00 tarting.download.from:.{url}")..
3760 00 26 20 20 20 20 70 72 69 6e 74 28 66 22 73 61 76 69 6e 67 20 74 6f 3a 20 7b 6f 75 74 70 75 74 .&....print(f"saving.to:.{output
3780 5f 70 61 74 68 7d 22 29 00 00 00 29 20 20 20 20 70 72 69 6e 74 28 66 22 73 65 6c 65 63 74 65 64 _path}")...)....print(f"selected
37a0 20 71 75 61 6c 69 74 79 3a 20 7b 71 75 61 6c 69 74 79 7d 22 29 00 00 00 04 20 20 20 20 00 00 00 .quality:.{quality}")...........
37c0 08 20 20 20 20 74 72 79 3a 00 00 00 18 20 20 20 20 20 20 20 20 23 20 73 74 61 72 74 20 64 6f 77 .....try:............#.start.dow
37e0 6e 6c 6f 61 64 00 00 00 2f 20 20 20 20 20 20 20 20 77 69 74 68 20 79 74 5f 64 6c 70 2e 59 6f 75 nload.../........with.yt_dlp.You
3800 74 75 62 65 44 4c 28 79 64 6c 5f 6f 70 74 73 29 20 61 73 20 79 64 6c 3a 00 00 00 37 20 20 20 20 tubeDL(ydl_opts).as.ydl:...7....
3820 20 20 20 20 20 20 20 20 69 6e 66 6f 20 3d 20 79 64 6c 2e 65 78 74 72 61 63 74 5f 69 6e 66 6f 28 ........info.=.ydl.extract_info(
3840 75 72 6c 2c 20 64 6f 77 6e 6c 6f 61 64 3d 54 72 75 65 29 00 00 00 34 20 20 20 20 20 20 20 20 20 url,.download=True)...4.........
3860 20 20 20 76 69 64 65 6f 5f 74 69 74 6c 65 20 3d 20 69 6e 66 6f 2e 67 65 74 28 27 74 69 74 6c 65 ...video_title.=.info.get('title
3880 27 2c 20 27 76 69 64 65 6f 27 29 00 00 00 39 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 ',.'video')...9............print
38a0 28 66 22 5c 6e 64 6f 77 6e 6c 6f 61 64 20 63 6f 6d 70 6c 65 74 65 64 3a 20 7b 76 69 64 65 6f 5f (f"\ndownload.completed:.{video_
38c0 74 69 74 6c 65 7d 22 29 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 28 66 22 title}")...2............print(f"
38e0 66 69 6c 65 20 73 61 76 65 64 20 74 6f 3a 20 7b 6f 75 74 70 75 74 5f 70 61 74 68 7d 22 29 00 00 file.saved.to:.{output_path}")..
3900 00 1a 20 20 20 20 65 78 63 65 70 74 20 45 78 63 65 70 74 69 6f 6e 20 61 73 20 65 3a 00 00 00 31 ......except.Exception.as.e:...1
3920 20 20 20 20 20 20 20 20 70 72 69 6e 74 28 66 22 65 72 72 6f 72 20 64 75 72 69 6e 67 20 64 6f 77 ........print(f"error.during.dow
3940 6e 6c 6f 61 64 3a 20 7b 73 74 72 28 65 29 7d 22 29 00 00 00 14 20 20 20 20 20 20 20 20 72 65 74 nload:.{str(e)}")............ret
3960 75 72 6e 20 46 61 6c 73 65 00 00 00 04 20 20 20 20 00 00 00 0f 20 20 20 20 72 65 74 75 72 6e 20 urn.False................return.
3980 54 72 75 65 00 00 00 00 00 00 00 15 64 65 66 20 70 72 6f 67 72 65 73 73 5f 68 6f 6f 6b 28 64 29 True........def.progress_hook(d)
39a0 3a 00 00 00 24 20 20 20 20 22 22 22 64 69 73 70 6c 61 79 73 20 64 6f 77 6e 6c 6f 61 64 20 70 72 :...$...."""displays.download.pr
39c0 6f 67 72 65 73 73 22 22 22 00 00 00 24 20 20 20 20 69 66 20 64 5b 27 73 74 61 74 75 73 27 5d 20 ogress"""...$....if.d['status'].
39e0 3d 3d 20 27 64 6f 77 6e 6c 6f 61 64 69 6e 67 27 3a 00 00 00 2e 20 20 20 20 20 20 20 20 70 65 72 ==.'downloading':............per
3a00 63 65 6e 74 20 3d 20 64 2e 67 65 74 28 27 5f 70 65 72 63 65 6e 74 5f 73 74 72 27 2c 20 27 6e 2f cent.=.d.get('_percent_str',.'n/
3a20 61 27 29 00 00 00 2a 20 20 20 20 20 20 20 20 73 70 65 65 64 20 3d 20 64 2e 67 65 74 28 27 5f 73 a')...*........speed.=.d.get('_s
3a40 70 65 65 64 5f 73 74 72 27 2c 20 27 6e 2f 61 27 29 00 00 00 26 20 20 20 20 20 20 20 20 65 74 61 peed_str',.'n/a')...&........eta
3a60 20 3d 20 64 2e 67 65 74 28 27 5f 65 74 61 5f 73 74 72 27 2c 20 27 6e 2f 61 27 29 00 00 00 4d 20 .=.d.get('_eta_str',.'n/a')...M.
3a80 20 20 20 20 20 20 20 70 72 69 6e 74 28 66 22 5c 72 70 72 6f 67 72 65 73 73 3a 20 7b 70 65 72 63 .......print(f"\rprogress:.{perc
3aa0 65 6e 74 7d 20 7c 20 73 70 65 65 64 3a 20 7b 73 70 65 65 64 7d 20 7c 20 65 74 61 3a 20 7b 65 74 ent}.|.speed:.{speed}.|.eta:.{et
3ac0 61 7d 22 2c 20 65 6e 64 3d 27 27 29 00 00 00 23 20 20 20 20 65 6c 69 66 20 64 5b 27 73 74 61 74 a}",.end='')...#....elif.d['stat
3ae0 75 73 27 5d 20 3d 3d 20 27 66 69 6e 69 73 68 65 64 27 3a 00 00 00 30 20 20 20 20 20 20 20 20 70 us'].==.'finished':...0........p
3b00 72 69 6e 74 28 22 5c 6e 70 72 6f 63 65 73 73 69 6e 67 20 64 6f 77 6e 6c 6f 61 64 65 64 20 66 69 rint("\nprocessing.downloaded.fi
3b20 6c 65 2e 2e 2e 22 29 00 00 00 00 00 00 00 0b 64 65 66 20 6d 61 69 6e 28 29 3a 00 00 00 44 20 20 le...")........def.main():...D..
3b40 20 20 70 61 72 73 65 72 20 3d 20 61 72 67 70 61 72 73 65 2e 41 72 67 75 6d 65 6e 74 50 61 72 73 ..parser.=.argparse.ArgumentPars
3b60 65 72 28 64 65 73 63 72 69 70 74 69 6f 6e 3d 27 76 69 64 65 6f 20 64 6f 77 6e 6c 6f 61 64 65 72 er(description='video.downloader
3b80 27 29 00 00 00 4d 20 20 20 20 70 61 72 73 65 72 2e 61 64 64 5f 61 72 67 75 6d 65 6e 74 28 27 75 ')...M....parser.add_argument('u
3ba0 72 6c 27 2c 20 74 79 70 65 3d 73 74 72 2c 20 68 65 6c 70 3d 27 75 72 6c 20 6f 66 20 74 68 65 20 rl',.type=str,.help='url.of.the.
3bc0 76 69 64 65 6f 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 27 29 00 00 00 54 20 20 20 20 70 61 72 73 65 video.to.download')...T....parse
3be0 72 2e 61 64 64 5f 61 72 67 75 6d 65 6e 74 28 27 2d 6f 27 2c 20 27 2d 2d 6f 75 74 70 75 74 27 2c r.add_argument('-o',.'--output',
3c00 20 74 79 70 65 3d 73 74 72 2c 20 68 65 6c 70 3d 27 66 6f 6c 64 65 72 20 74 6f 20 73 61 76 65 20 .type=str,.help='folder.to.save.
3c20 74 68 65 20 76 69 64 65 6f 27 29 00 00 00 45 20 20 20 20 70 61 72 73 65 72 2e 61 64 64 5f 61 72 the.video')...E....parser.add_ar
3c40 67 75 6d 65 6e 74 28 27 2d 71 27 2c 20 27 2d 2d 71 75 61 6c 69 74 79 27 2c 20 74 79 70 65 3d 73 gument('-q',.'--quality',.type=s
3c60 74 72 2c 20 64 65 66 61 75 6c 74 3d 27 62 65 73 74 27 2c 20 00 00 00 4e 20 20 20 20 20 20 20 20 tr,.default='best',....N........
3c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 65 6c 70 3d 27 76 69 64 65 6f 20 71 75 61 6c ................help='video.qual
3ca0 69 74 79 20 28 62 65 73 74 2c 20 77 6f 72 73 74 2c 20 31 30 38 30 70 2c 20 37 32 30 70 2c 20 65 ity.(best,.worst,.1080p,.720p,.e
3cc0 74 63 2e 29 27 29 00 00 00 04 20 20 20 20 00 00 00 20 20 20 20 20 23 20 69 66 20 61 72 67 75 6d tc.)')................#.if.argum
3ce0 65 6e 74 73 20 77 65 72 65 20 70 72 6f 76 69 64 65 64 00 00 00 1a 20 20 20 20 69 66 20 6c 65 6e ents.were.provided........if.len
3d00 28 73 79 73 2e 61 72 67 76 29 20 3d 3d 20 31 3a 00 00 00 19 20 20 20 20 20 20 20 20 23 20 69 66 (sys.argv).==.1:............#.if
3d20 20 6e 6f 20 61 72 67 75 6d 65 6e 74 73 00 00 00 23 20 20 20 20 20 20 20 20 70 72 69 6e 74 28 22 .no.arguments...#........print("
3d40 3d 76 69 64 65 6f 20 64 6f 77 6e 6c 6f 61 64 65 72 3d 22 29 00 00 00 2c 20 20 20 20 20 20 20 20 =video.downloader=")...,........
3d60 75 72 6c 20 3d 20 69 6e 70 75 74 28 22 65 6e 74 65 72 20 74 68 65 20 76 69 64 65 6f 20 75 72 6c url.=.input("enter.the.video.url
3d80 3a 20 22 29 00 00 00 51 20 20 20 20 20 20 20 20 6f 75 74 70 75 74 20 3d 20 69 6e 70 75 74 28 22 :.")...Q........output.=.input("
3da0 64 65 73 74 69 6e 61 74 69 6f 6e 20 66 6f 6c 64 65 72 20 28 6c 65 61 76 65 20 62 6c 61 6e 6b 20 destination.folder.(leave.blank.
3dc0 74 6f 20 75 73 65 20 27 2e 2f 64 6f 77 6e 6c 6f 61 64 73 27 29 3a 20 22 29 00 00 00 48 20 20 20 to.use.'./downloads'):.")...H...
3de0 20 20 20 20 20 71 75 61 6c 69 74 79 20 3d 20 69 6e 70 75 74 28 22 64 65 73 69 72 65 64 20 71 75 .....quality.=.input("desired.qu
3e00 61 6c 69 74 79 20 28 6c 65 61 76 65 20 62 6c 61 6e 6b 20 74 6f 20 75 73 65 20 27 62 65 73 74 27 ality.(leave.blank.to.use.'best'
3e20 29 3a 20 22 29 00 00 00 08 20 20 20 20 20 20 20 20 00 00 00 21 20 20 20 20 20 20 20 20 23 20 64 ):.")...............!........#.d
3e40 65 66 61 75 6c 74 20 76 61 6c 75 65 73 20 69 66 20 65 6d 70 74 79 00 00 00 16 20 20 20 20 20 20 efault.values.if.empty..........
3e60 20 20 69 66 20 6e 6f 74 20 6f 75 74 70 75 74 3a 00 00 00 19 20 20 20 20 20 20 20 20 20 20 20 20 ..if.not.output:................
3e80 6f 75 74 70 75 74 20 3d 20 4e 6f 6e 65 00 00 00 17 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 output.=.None............if.not.
3ea0 71 75 61 6c 69 74 79 3a 00 00 00 1c 20 20 20 20 20 20 20 20 20 20 20 20 71 75 61 6c 69 74 79 20 quality:................quality.
3ec0 3d 20 22 62 65 73 74 22 00 00 00 08 20 20 20 20 20 20 20 20 00 00 00 2c 20 20 20 20 20 20 20 20 =."best"...............,........
3ee0 64 6f 77 6e 6c 6f 61 64 5f 76 69 64 65 6f 28 75 72 6c 2c 20 6f 75 74 70 75 74 2c 20 71 75 61 6c download_video(url,.output,.qual
3f00 69 74 79 29 00 00 00 09 20 20 20 20 65 6c 73 65 3a 00 00 00 1b 20 20 20 20 20 20 20 20 23 20 63 ity)........else:............#.c
3f20 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 6d 6f 64 65 00 00 00 22 20 20 20 20 20 20 20 20 61 72 67 73 ommand-line.mode..."........args
3f40 20 3d 20 70 61 72 73 65 72 2e 70 61 72 73 65 5f 61 72 67 73 28 29 00 00 00 3b 20 20 20 20 20 20 .=.parser.parse_args()...;......
3f60 20 20 64 6f 77 6e 6c 6f 61 64 5f 76 69 64 65 6f 28 61 72 67 73 2e 75 72 6c 2c 20 61 72 67 73 2e ..download_video(args.url,.args.
3f80 6f 75 74 70 75 74 2c 20 61 72 67 73 2e 71 75 61 6c 69 74 79 29 00 00 00 00 00 00 00 1a 69 66 20 output,.args.quality)........if.
3fa0 5f 5f 6e 61 6d 65 5f 5f 20 3d 3d 20 22 5f 5f 6d 61 69 6e 5f 5f 22 3a 00 00 00 0a 20 20 20 20 6d __name__.==."__main__":........m
3fc0 61 69 6e 28 29 35 81 35 81 5f d0 00 00 00 01 00 00 00 03 00 00 00 00 00 00 00 04 00 00 00 02 00 ain()5.5._......................
3fe0 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
40a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
40c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
40e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4140 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 0e 3b 69 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 .............j.;i...............
4160 00 58 00 00 00 00 00 00 00 01 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 57 00 .X............5...............W.
4180 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 0b 00 00 00 00 00 00 01 00 ................................
41a0 00 00 00 00 00 00 35 81 5f d0 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 ......5._.......................
41c0 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4320 00 00 00 00 00 00 00 00 00 00 00 00 6a 0e 3b 69 04 01 00 00 00 04 00 f5 18 00 00 00 01 00 00 00 ............j.;i................
4340 02 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 47 00 00 00 09 69 ..........................G....i
4360 6d 70 6f 72 74 20 6f 73 00 00 00 0a 69 6d 70 6f 72 74 20 73 79 73 00 00 00 0b 69 6d 70 6f 72 74 mport.os....import.sys....import
4380 20 74 69 6d 65 00 00 00 1d 66 72 6f 6d 20 64 61 74 65 74 69 6d 65 20 69 6d 70 6f 72 74 20 64 61 .time....from.datetime.import.da
43a0 74 65 74 69 6d 65 00 00 00 0f 69 6d 70 6f 72 74 20 61 72 67 70 61 72 73 65 00 00 00 0d 69 6d 70 tetime....import.argparse....imp
43c0 6f 72 74 20 79 74 5f 64 6c 70 00 00 00 00 00 00 00 3a 64 65 66 20 64 6f 77 6e 6c 6f 61 64 5f 76 ort.yt_dlp.......:def.download_v
43e0 69 64 65 6f 28 75 72 6c 2c 20 6f 75 74 70 75 74 5f 70 61 74 68 3d 4e 6f 6e 65 2c 20 71 75 61 6c ideo(url,.output_path=None,.qual
4400 69 74 79 3d 22 62 65 73 74 22 29 3a 00 00 00 13 20 20 20 20 69 66 20 6f 75 74 70 75 74 5f 70 61 ity="best"):........if.output_pa
4420 74 68 3a 00 00 00 2f 20 20 20 20 20 20 20 20 6f 73 2e 6d 61 6b 65 64 69 72 73 28 6f 75 74 70 75 th:.../........os.makedirs(outpu
4440 74 5f 70 61 74 68 2c 20 65 78 69 73 74 5f 6f 6b 3d 54 72 75 65 29 00 00 00 09 20 20 20 20 65 6c t_path,.exist_ok=True)........el
4460 73 65 3a 00 00 00 3c 20 20 20 20 20 20 20 20 6f 75 74 70 75 74 5f 70 61 74 68 20 3d 20 6f 73 2e se:...<........output_path.=.os.
4480 70 61 74 68 2e 6a 6f 69 6e 28 6f 73 2e 67 65 74 63 77 64 28 29 2c 20 22 64 6f 77 6e 6c 6f 61 64 path.join(os.getcwd(),."download
44a0 73 22 29 00 00 00 2f 20 20 20 20 20 20 20 20 6f 73 2e 6d 61 6b 65 64 69 72 73 28 6f 75 74 70 75 s").../........os.makedirs(outpu
44c0 74 5f 70 61 74 68 2c 20 65 78 69 73 74 5f 6f 6b 3d 54 72 75 65 29 00 00 00 04 20 20 20 20 00 00 t_path,.exist_ok=True)..........
44e0 00 10 20 20 20 20 79 64 6c 5f 6f 70 74 73 20 3d 20 7b 00 00 00 1a 20 20 20 20 20 20 20 20 27 66 ......ydl_opts.=.{............'f
4500 6f 72 6d 61 74 27 3a 20 71 75 61 6c 69 74 79 2c 00 00 00 42 20 20 20 20 20 20 20 20 27 6f 75 74 ormat':.quality,...B........'out
4520 74 6d 70 6c 27 3a 20 6f 73 2e 70 61 74 68 2e 6a 6f 69 6e 28 6f 75 74 70 75 74 5f 70 61 74 68 2c tmpl':.os.path.join(output_path,
4540 20 27 25 28 74 69 74 6c 65 29 73 2e 25 28 65 78 74 29 73 27 29 2c 00 00 00 1b 20 20 20 20 20 20 .'%(title)s.%(ext)s'),..........
4560 20 20 27 6e 6f 70 6c 61 79 6c 69 73 74 27 3a 20 54 72 75 65 2c 00 00 00 2a 20 20 20 20 20 20 20 ..'noplaylist':.True,...*.......
4580 20 27 70 72 6f 67 72 65 73 73 5f 68 6f 6f 6b 73 27 3a 20 5b 70 72 6f 67 72 65 73 73 5f 68 6f 6f .'progress_hooks':.[progress_hoo
45a0 6b 5d 2c 00 00 00 05 20 20 20 20 7d 00 00 00 04 20 20 20 20 00 00 00 2b 20 20 20 20 70 72 69 6e k],........}...........+....prin
45c0 74 28 66 22 73 74 61 72 74 69 6e 67 20 64 6f 77 6e 6c 6f 61 64 20 66 72 6f 6d 3a 20 7b 75 72 6c t(f"starting.download.from:.{url
45e0 7d 22 29 00 00 00 26 20 20 20 20 70 72 69 6e 74 28 66 22 73 61 76 69 6e 67 20 74 6f 3a 20 7b 6f }")...&....print(f"saving.to:.{o
4600 75 74 70 75 74 5f 70 61 74 68 7d 22 29 00 00 00 29 20 20 20 20 70 72 69 6e 74 28 66 22 73 65 6c utput_path}")...)....print(f"sel
4620 65 63 74 65 64 20 71 75 61 6c 69 74 79 3a 20 7b 71 75 61 6c 69 74 79 7d 22 29 00 00 00 04 20 20 ected.quality:.{quality}")......
4640 20 20 00 00 00 08 20 20 20 20 74 72 79 3a 00 00 00 2f 20 20 20 20 20 20 20 20 77 69 74 68 20 79 ..........try:.../........with.y
4660 74 5f 64 6c 70 2e 59 6f 75 74 75 62 65 44 4c 28 79 64 6c 5f 6f 70 74 73 29 20 61 73 20 79 64 6c t_dlp.YoutubeDL(ydl_opts).as.ydl
4680 3a 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 20 3d 20 79 64 6c 2e 65 78 74 72 :...7............info.=.ydl.extr
46a0 61 63 74 5f 69 6e 66 6f 28 75 72 6c 2c 20 64 6f 77 6e 6c 6f 61 64 3d 54 72 75 65 29 00 00 00 34 act_info(url,.download=True)...4
46c0 20 20 20 20 20 20 20 20 20 20 20 20 76 69 64 65 6f 5f 74 69 74 6c 65 20 3d 20 69 6e 66 6f 2e 67 ............video_title.=.info.g
46e0 65 74 28 27 74 69 74 6c 65 27 2c 20 27 76 69 64 65 6f 27 29 00 00 00 39 20 20 20 20 20 20 20 20 et('title',.'video')...9........
4700 20 20 20 20 70 72 69 6e 74 28 66 22 5c 6e 64 6f 77 6e 6c 6f 61 64 20 63 6f 6d 70 6c 65 74 65 64 ....print(f"\ndownload.completed
4720 3a 20 7b 76 69 64 65 6f 5f 74 69 74 6c 65 7d 22 29 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 :.{video_title}")...2...........
4740 20 70 72 69 6e 74 28 66 22 66 69 6c 65 20 73 61 76 65 64 20 74 6f 3a 20 7b 6f 75 74 70 75 74 5f .print(f"file.saved.to:.{output_
4760 70 61 74 68 7d 22 29 00 00 00 1a 20 20 20 20 65 78 63 65 70 74 20 45 78 63 65 70 74 69 6f 6e 20 path}")........except.Exception.
4780 61 73 20 65 3a 00 00 00 31 20 20 20 20 20 20 20 20 70 72 69 6e 74 28 66 22 65 72 72 6f 72 20 64 as.e:...1........print(f"error.d
47a0 75 72 69 6e 67 20 64 6f 77 6e 6c 6f 61 64 3a 20 7b 73 74 72 28 65 29 7d 22 29 00 00 00 14 20 20 uring.download:.{str(e)}")......
47c0 20 20 20 20 20 20 72 65 74 75 72 6e 20 46 61 6c 73 65 00 00 00 04 20 20 20 20 00 00 00 0f 20 20 ......return.False..............
47e0 20 20 72 65 74 75 72 6e 20 54 72 75 65 00 00 00 00 00 00 00 15 64 65 66 20 70 72 6f 67 72 65 73 ..return.True........def.progres
4800 73 5f 68 6f 6f 6b 28 64 29 3a 00 00 00 24 20 20 20 20 69 66 20 64 5b 27 73 74 61 74 75 73 27 5d s_hook(d):...$....if.d['status']
4820 20 3d 3d 20 27 64 6f 77 6e 6c 6f 61 64 69 6e 67 27 3a 00 00 00 2e 20 20 20 20 20 20 20 20 70 65 .==.'downloading':............pe
4840 72 63 65 6e 74 20 3d 20 64 2e 67 65 74 28 27 5f 70 65 72 63 65 6e 74 5f 73 74 72 27 2c 20 27 6e rcent.=.d.get('_percent_str',.'n
4860 2f 61 27 29 00 00 00 2a 20 20 20 20 20 20 20 20 73 70 65 65 64 20 3d 20 64 2e 67 65 74 28 27 5f /a')...*........speed.=.d.get('_
4880 73 70 65 65 64 5f 73 74 72 27 2c 20 27 6e 2f 61 27 29 00 00 00 26 20 20 20 20 20 20 20 20 65 74 speed_str',.'n/a')...&........et
48a0 61 20 3d 20 64 2e 67 65 74 28 27 5f 65 74 61 5f 73 74 72 27 2c 20 27 6e 2f 61 27 29 00 00 00 4d a.=.d.get('_eta_str',.'n/a')...M
48c0 20 20 20 20 20 20 20 20 70 72 69 6e 74 28 66 22 5c 72 70 72 6f 67 72 65 73 73 3a 20 7b 70 65 72 ........print(f"\rprogress:.{per
48e0 63 65 6e 74 7d 20 7c 20 73 70 65 65 64 3a 20 7b 73 70 65 65 64 7d 20 7c 20 65 74 61 3a 20 7b 65 cent}.|.speed:.{speed}.|.eta:.{e
4900 74 61 7d 22 2c 20 65 6e 64 3d 27 27 29 00 00 00 23 20 20 20 20 65 6c 69 66 20 64 5b 27 73 74 61 ta}",.end='')...#....elif.d['sta
4920 74 75 73 27 5d 20 3d 3d 20 27 66 69 6e 69 73 68 65 64 27 3a 00 00 00 30 20 20 20 20 20 20 20 20 tus'].==.'finished':...0........
4940 70 72 69 6e 74 28 22 5c 6e 70 72 6f 63 65 73 73 69 6e 67 20 64 6f 77 6e 6c 6f 61 64 65 64 20 66 print("\nprocessing.downloaded.f
4960 69 6c 65 2e 2e 2e 22 29 00 00 00 00 00 00 00 0b 64 65 66 20 6d 61 69 6e 28 29 3a 00 00 00 50 20 ile...")........def.main():...P.
4980 20 20 20 70 61 72 73 65 72 20 3d 20 61 72 67 70 61 72 73 65 2e 41 72 67 75 6d 65 6e 74 50 61 72 ...parser.=.argparse.ArgumentPar
49a0 73 65 72 28 64 65 73 63 72 69 70 74 69 6f 6e 3d 27 65 64 75 63 61 74 69 6f 6e 61 6c 20 76 69 64 ser(description='educational.vid
49c0 65 6f 20 64 6f 77 6e 6c 6f 61 64 65 72 27 29 00 00 00 4d 20 20 20 20 70 61 72 73 65 72 2e 61 64 eo.downloader')...M....parser.ad
49e0 64 5f 61 72 67 75 6d 65 6e 74 28 27 75 72 6c 27 2c 20 74 79 70 65 3d 73 74 72 2c 20 68 65 6c 70 d_argument('url',.type=str,.help
4a00 3d 27 75 72 6c 20 6f 66 20 74 68 65 20 76 69 64 65 6f 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 27 29 ='url.of.the.video.to.download')
4a20 00 00 00 5a 20 20 20 20 70 61 72 73 65 72 2e 61 64 64 5f 61 72 67 75 6d 65 6e 74 28 27 2d 6f 27 ...Z....parser.add_argument('-o'
4a40 2c 20 27 2d 2d 6f 75 74 70 75 74 27 2c 20 74 79 70 65 3d 73 74 72 2c 20 68 65 6c 70 3d 27 66 6f ,.'--output',.type=str,.help='fo
4a60 6c 64 65 72 20 77 68 65 72 65 20 74 6f 20 73 61 76 65 20 74 68 65 20 76 69 64 65 6f 27 29 00 00 lder.where.to.save.the.video')..
4a80 00 45 20 20 20 20 70 61 72 73 65 72 2e 61 64 64 5f 61 72 67 75 6d 65 6e 74 28 27 2d 71 27 2c 20 .E....parser.add_argument('-q',.
4aa0 27 2d 2d 71 75 61 6c 69 74 79 27 2c 20 74 79 70 65 3d 73 74 72 2c 20 64 65 66 61 75 6c 74 3d 27 '--quality',.type=str,.default='
4ac0 62 65 73 74 27 2c 20 00 00 00 4e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 best',....N.....................
4ae0 20 20 20 68 65 6c 70 3d 27 76 69 64 65 6f 20 71 75 61 6c 69 74 79 20 28 62 65 73 74 2c 20 77 6f ...help='video.quality.(best,.wo
4b00 72 73 74 2c 20 31 30 38 30 70 2c 20 37 32 30 70 2c 20 65 74 63 2e 29 27 29 00 00 00 04 20 20 20 rst,.1080p,.720p,.etc.)').......
4b20 20 00 00 00 1a 20 20 20 20 69 66 20 6c 65 6e 28 73 79 73 2e 61 72 67 76 29 20 3d 3d 20 31 3a 00 .........if.len(sys.argv).==.1:.
4b40 00 00 2f 20 20 20 20 20 20 20 20 70 72 69 6e 74 28 22 3d 3d 3d 20 73 74 75 64 79 20 76 69 64 65 ../........print("===.study.vide
4b60 6f 20 64 6f 77 6e 6c 6f 61 64 65 72 20 3d 3d 3d 22 29 00 00 00 28 20 20 20 20 20 20 20 20 75 72 o.downloader.===")...(........ur
4b80 6c 20 3d 20 69 6e 70 75 74 28 22 65 6e 74 65 72 20 76 69 64 65 6f 20 75 72 6c 3a 20 22 29 00 00 l.=.input("enter.video.url:.")..
4ba0 00 51 20 20 20 20 20 20 20 20 6f 75 74 70 75 74 20 3d 20 69 6e 70 75 74 28 22 64 65 73 74 69 6e .Q........output.=.input("destin
4bc0 61 74 69 6f 6e 20 66 6f 6c 64 65 72 20 28 6c 65 61 76 65 20 62 6c 61 6e 6b 20 74 6f 20 75 73 65 ation.folder.(leave.blank.to.use
4be0 20 27 2e 2f 64 6f 77 6e 6c 6f 61 64 73 27 29 3a 20 22 29 00 00 00 48 20 20 20 20 20 20 20 20 71 .'./downloads'):.")...H........q
4c00 75 61 6c 69 74 79 20 3d 20 69 6e 70 75 74 28 22 64 65 73 69 72 65 64 20 71 75 61 6c 69 74 79 20 uality.=.input("desired.quality.
4c20 28 6c 65 61 76 65 20 62 6c 61 6e 6b 20 74 6f 20 75 73 65 20 27 62 65 73 74 27 29 3a 20 22 29 00 (leave.blank.to.use.'best'):.").
4c40 00 00 08 20 20 20 20 20 20 20 20 00 00 00 16 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 6f 75 .......................if.not.ou
4c60 74 70 75 74 3a 00 00 00 19 20 20 20 20 20 20 20 20 20 20 20 20 6f 75 74 70 75 74 20 3d 20 4e 6f tput:................output.=.No
4c80 6e 65 00 00 00 17 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 71 75 61 6c 69 74 79 3a 00 00 00 ne............if.not.quality:...
4ca0 1c 20 20 20 20 20 20 20 20 20 20 20 20 71 75 61 6c 69 74 79 20 3d 20 22 62 65 73 74 22 00 00 00 .............quality.=."best"...
4cc0 08 20 20 20 20 20 20 20 20 00 00 00 2c 20 20 20 20 20 20 20 20 64 6f 77 6e 6c 6f 61 64 5f 76 69 ............,........download_vi
4ce0 64 65 6f 28 75 72 6c 2c 20 6f 75 74 70 75 74 2c 20 71 75 61 6c 69 74 79 29 00 00 00 09 20 20 20 deo(url,.output,.quality).......
4d00 20 65 6c 73 65 3a 00 00 00 22 20 20 20 20 20 20 20 20 61 72 67 73 20 3d 20 70 61 72 73 65 72 2e .else:..."........args.=.parser.
4d20 70 61 72 73 65 5f 61 72 67 73 28 29 00 00 00 3b 20 20 20 20 20 20 20 20 64 6f 77 6e 6c 6f 61 64 parse_args()...;........download
4d40 5f 76 69 64 65 6f 28 61 72 67 73 2e 75 72 6c 2c 20 61 72 67 73 2e 6f 75 74 70 75 74 2c 20 61 72 _video(args.url,.args.output,.ar
4d60 67 73 2e 71 75 61 6c 69 74 79 29 00 00 00 00 00 00 00 1a 69 66 20 5f 5f 6e 61 6d 65 5f 5f 20 3d gs.quality)........if.__name__.=
4d80 3d 20 22 5f 5f 6d 61 69 6e 5f 5f 22 3a 00 00 00 0a 20 20 20 20 6d 61 69 6e 28 29 35 81 f5 18 00 =."__main__":........main()5....
4da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 46 00 00 00 0a 00 00 00 00 00 00 00 00 ...................F............
4dc0 00 00 00 00 00 00 00 00 00 00 00 6a 09 00 00 00 00 00 00 35 81 e7 aa ...........j.......5...