def video_download(linkurl, videoPath='/home/arnab/PythonProjects/Downloader/temporary'): """ download logic for the youtube video takes in two parameters linkurl and videoPath uses pytube youtube api for downloading the file to the temporary folder""" if os.path.exists(videoPath) and len(os.listdir(videoPath)) != 0: print('Folder is not empty... deleting contents of folder') for file in os.listdir(videoPath): file_path = os.path.join(videoPath, file) if os.path.isfile(file_path): os.remove(file_path) else: print('Folder is empty we can download the file') print('Starting file download') yt = YouTube(linkurl) yt = yt.streams.filter(progressive=True, file_extension='mp4').order_by('resolution').desc().first() yt.download(videoPath) print('Download Complete') # def download_for_user(): # """ downloads the file for the user""" # file_path = '/home/arnab/PythonProjects/Downloader/temporary' # file_name = os.listdir(file_path) # print('inside download for user function') # return send_from_directory(file_path, file_name[0], as_attachment=True)
def youtube(): a = var.get() ytv = YouTube(a).streams.filter( progressive=True, file_extension="mp4").order_by('resolution').desc().first() ytv.download(r"E:\E-books") print("entry box :", a)
def download_video(addr): '''링크의 동영상을 mp3 형식으로 mp3 폴더에 다운로드합니다 1. 해당 동영상을 mp4 형식으로 먼저 다운로드 합니다. 재생목록일 경우 1, 단일 동영상일 경우 2 입력 2. 동영상 링크를 입력합니다. 축약주소, 모바일주소, 웹주소 모두 가능합니다. 3. pytube 라이브러리로 mp3디렉토리에 mp4 파일로 먼저 다운로드받습니다. 4. 로컬에 설치되어 있는 ffmpeg로 mp3로 인코딩합니다. 5. mp4파일을 삭제합니다. ''' try: yt = YouTube(addr).streams.filter(mime_type="audio/mp4").first() except: print('올바른 형식으로 입력해주십시오') return parent_dir = './mp3' yt.download(parent_dir) print('mp4 파일 다운로드를 완료하였습니다.') default_filename = yt.default_filename new_filename = os.path.splitext(default_filename)[0] + '.mp3' print(f'새로운 파일의 이름은 {new_filename}입니다.') subprocess.call([ 'ffmpeg', '-i', os.path.join(parent_dir, default_filename), '-b:a', '192K', '-vn', os.path.join(parent_dir, new_filename) ]) print('mp3 파일 다운로드를 완료하였습니다. mp4 파일을 삭제합니다.') os.remove(os.path.join(parent_dir, default_filename))
def yt_download_video_convert_to_mp3(self, videourl): yt = YouTube(videourl) video_ext = yt.embed_url.split("/embed/")[1] yt = yt.streams.filter(progressive=True, file_extension='mp4')\ .order_by('resolution')\ .desc()\ .first() if not os.path.exists("static"): os.makedirs("static") if not os.path.exists("static/" + video_ext): os.makedirs("static/" + video_ext) yt.download("static/" + video_ext, filename=video_ext) video = VideoFileClip( os.path.join("static/" + video_ext + "/" + video_ext + ".mp4")) video.audio.write_audiofile( os.path.join("static/" + video_ext + "/" + video_ext + ".mp3")) sound = AudioSegment.from_mp3("static/" + video_ext + "/" + video_ext + ".mp3") sound.export("static/" + video_ext + "/" + video_ext + ".wav", format="wav")
def youtube(): a = var.get() #https://www.youtube.com/watch?v=0NV1KdWRHck ytvideo = YouTube(a).streams.filter( progressive=True, file_extension='mp4').order_by('resolution').desc().first() ytvideo.download(r"D:\letsupgrade\praju") print("Entry box", a)
def playlist_video(link): playlist = Playlist(link) nVideos = len(playlist.video_urls) print(f"A playlist tem {nVideos} videos!") while True: modo_playlist = input(f"Você deseja selecionar ou baixar todos os vídeos? {C}[S][T]{W} ").upper() if modo_playlist == "S" or "T": break pastas = subprocess.getoutput(["ls"]).split() pastas = ", ".join(pastas) path = input(f"Qual a pasta dos vídeos? {C}{pastas}{W} ") for url in playlist: video = YouTube(url) filename = mod(video.title) if modo_playlist == "S": while True: selecao = input(f"Você deseja baixar o vídeo {G}{filename}{W}? {C}[S][N]{W} ").upper() if selecao == "S" or "N": break if selecao == "N": continue if modo_playlist == "T": print(f"{G}Ok, irei baixar todos os vídeos!{W}") print(f'Baixando o vídeo {C}{filename}{W} ...') video = video.streams.get_highest_resolution() video.download(output_path=path)
def playlist_audio(link): playlist = Playlist(link) n = len(playlist.video_urls) print(f"A playlist tem {n} músicas!") while True: modo_playlist = input(f"Você deseja selecionar ou baixar todas as músicas? \033[36m[S][T]{W} ").upper() if modo_playlist == "S" or "T": break pastas = subprocess.getoutput(["ls"]).split() pastas = ", ".join(pastas) path = input(f"Qual a pasta das músicas? {C}{pastas}{W} ") for url in playlist: audio = YouTube(url) filename = mod(audio.title) if modo_playlist == "S": while True: selecao = input(f"Você deseja baixar a música {R}{filename}{W}? {C}[S][N]{W} ").upper() if selecao == "S" or "N": break if selecao == "N": continue if modo_playlist == "T": print(f"{G}Ok, irei baixar todas as músicas!{W}") audio = audio.streams.filter(only_audio=True)[0] audio.download(output_path=path, filename = filename) print('Baixando a música:', filename) print(path) print(type(path)) codec_mp3(path, filename)
def download(self, url, path='', filename='video'): ''' Downloading song from YouTube :param url: video url on YouTube :param path: local directory :param filename: name of file :return: str, filename ''' try: yt = YouTube(url) #downloading yt = yt.streams.filter( progressive=True, file_extension='mp4').order_by('resolution').desc().first() fullpath = os.getcwd() + '/cache' try: os.makedirs('cache/' + path) except: pass yt.download('cache/' + path, filename=path) return filename except: return None
def download(link): path = os.getcwd() + '/downloaded_videos' yt = YouTube(link) yt = yt.get('mp4', '720p') yt.download(path) if not os.path.exists(path): os.makedirs(path)
def getSquareRoot(): x1 = Entry.get() label1 = tkinter.Label(root, text="Download Completed") yt = YouTube(x1) yt = yt.streams.first() yt.download('/home/codewar/Videos/Down_Vidoes') canvas1.create_window(200, 230, window=label1)
def download_youtube_video(self): video_url = self.youtube_url_var.get() youtube_res = self.youtube_var.get() if video_url == '': self.textBox.insert(1.0, "Empty URL inserted" + "\n") else: p = re.compile( r'^(http(s)?:\/\/)?((w){3}.)?youtu(be|.be)?(\.com)?\/.+') m = p.match(video_url) if m: try: stream = YouTube(video_url).streams.get_by_resolution( youtube_res) if stream == [] or stream == None: self.textBox.insert( 1.0, "Choose another resolution instead of :" + youtube_res + "\n") else: stream.download() #YouTube(video_url).streams.first().download(self.folderAddress) self.textBox.insert( 1.0, "Video finished downloading: " + video_url + " : " + youtube_res + "\n") except Exception as e: self.textBox.insert(1.0, str(e) + "\n") self.youtube_url.delete(0, 'end') else: self.textBox.insert(1.0, "Invalid url for download inserted" + "\n")
def enter(self): song = self.userinput.text() d = self.file print(d) driver = webdriver.Chrome() driver.get( f"https://www.youtube.com/results?search_query={song}+lyrics") s = driver.find_element_by_xpath( '/html/body/ytd-app/div/ytd-page-manager/ytd-search/div[1]/ytd-two-column-search-results-renderer/div/ytd-section-list-renderer/div[2]/ytd-item-section-renderer/div[3]/ytd-video-renderer[1]/div[1]/ytd-thumbnail/a' ).get_attribute('href') video = YouTube(s) song = video.title video = video.streams.first() video.download(f'{d}/', filename=song) videoclip = VideoFileClip(f'{d}/{song}.mp4') audioclip = videoclip.audio audioclip.write_audiofile(f'{d}/{song}.mp3') audioclip.close() videoclip.close() os.remove(f'{d}/{song}.mp4')
def main(): parser = argparse.ArgumentParser( description='Script to download a YouTube video.') parser.add_argument('--url', type=str, required=True, help='Youtube video URL.') parser.add_argument('-o', '--output', default='output', help='Output video name.') args = parser.parse_args() output_dir = os.path.dirname(args.output) output_name = os.path.basename(args.output) video_size = YouTube(args.url).streams.get_highest_resolution().filesize video = YouTube( args.url, on_progress_callback=partial(progress_function, pbar=tqdm(total=video_size)), ).streams.get_highest_resolution() print('Downloading video titled "{}" of resolution {} to {}/{}'.format( video.title, video.resolution, output_dir, output_name)) video.download(output_path=output_dir, filename=output_name)
def download(): directory = filedialog.askdirectory() # Exception if directory is None: return link = text_box.get(1.0, END) yt = YouTube(link) # path = root.filename video = YouTube(link).streams.first() # print(yt.streams) stream_option = value_inside.get() search = re.search('"(.*?)"', stream_option) if search: itag = int(search.group()[1:-1]) else: return print("itag= ", itag) stream = yt.streams.get_by_itag(itag) video.download(directory) print("Download Completed") print("The video was DOWNLOADED TO: ", directory)
def Dwnld(self): print("jingu") a = self.lineEdit.text() print(a) b = "" if self.r1.isChecked(): b = "360p" print(b) elif self.r2.isChecked(): b = "480p" print(b) else: b = "720p" print(b) yt = YouTube(a) yt = yt.streams.filter(res=b).first() print(yt) if yt: #just change the destination directory here yt.download('D:\Python Tweaks\Youtube View Dwnloader\downloads') else: print("link Doesn't Exist")
def dlYoutube(link, path): yt = YouTube(link) #yt = yt.get('mp4', '720p') yt = yt.streams.filter(progressive=True, file_extension='mp4').first() if not os.path.exists(path): os.makedirs(path) yt.download(path) print('--*< - success - >*--')
def __downloader(self, url: str): while True: try: video = YouTube(url) video = video.streams.filter( progressive=True, file_extension=self.extension).order_by( 'resolution').desc().first() print(" - Title :", video.title) if self.__is_exists(video.default_filename, video.filesize): print("[ ! ] Canceled, Already Exists !") else: print(" - Size : {:0.2f} MB".format(video.filesize / (1024 * 1024))) print(" - Resolution :", video.resolution) print("Downloading...") video.download(self.save_folder_dir) print("[ + ] Downloaded") except Exception as error: print("[ - ] Error Detected :", type(error), error) time.sleep(5) else: return
def yt_download(row, csv_w, idx): video_name = 'v_fight_' + '{:05d}'.format(idx) res = ['480p', '720p', '1080p'] try: yt = YouTube(row.video_link).streams.filter( progressive=True, subtype='mp4') except Exception as e: print(idx, row.video_link, e) return try: for r in res: if yt.filter(res=r).count() != 0: yt = yt.filter(res=r).first() break except Exception as e: print(idx, e) return try: if random() < 0.8: yt.download('/home/uscc/train', video_name) csv_w.writerow([idx, video_name, yt.filesize, 'train']) print([video_name, yt.filesize, idx, 'train']) else: yt.download('/home/uscc/test', video_name) csv_w.writerow([idx, video_name, yt.filesize, 'test']) print([video_name, yt.filesize, idx, 'test']) except AttributeError as e: print(idx, e) return
def downloadFile(name): url = getLink(name) yt = YouTube(url) yt = yt.streams.filter( progressive=True, file_extension='mp4').order_by('resolution').desc().first() yt.download("../videos/", filename=name)
def music(): path = 'C:/Users/Андрей/Music' music = YouTube(url.get()).streams[-1] music.download(path) quest = Label(root, text="Загрузка '" + YouTube(url.get()).title + "' завершена") quest.pack()
def downloadVideo(): x = str(mylink.get()) ytvideo = YouTube(x).streams.filter( progressive=True, file_extension='mp4').order_by('resolution').desc().first() ytvideo.download("C:\\Users\Hp\Desktop\Let's Upgrade-Python")
def downloadYouTube(videourl, path): yt = YouTube(videourl) yt = yt.streams.filter(progressive=True, file_extension='mp4').order_by('resolution').desc().first() if not os.path.exists(path): os.makedirs(path) yt.download(path)
def mp3(request): form = LinkForm(request.POST or None) if form.is_valid(): try: os.chdir('C:/PYazilim/media') ls = os.listdir('C:/PYazilim/media') os.remove(ls[0]) os.remove(ls[1]) except: pass vid = form.save(commit=False) video_link = vid.vid_link vid = YouTube(video_link).streams.first() a = vid vid.download(output_path="C:/PYazilim/media", filename="test") response = requests.get(video_link) html_ic = response.content soup = BeautifulSoup(html_ic, "html.parser") name = soup.find_all('title') name = str(name[0].text)[:(len(name[0].text) - 10)] os.chdir('C:/PYazilim/media') os.rename('test.mp4', 'test.mp3') a.download(output_path="C:/PYazilim/media", filename="test") os.chdir('C:/PYazilim/media') os.rename('test.mp4', f'{name}.mp4') os.rename('test.mp3', f'{name}.mp3') return render(request, "mp3.html", {"name": name}) return render(request, "mp3.html", {"form": form})
def download_youtube_video(video_url): ''' Signed woodworksio Aug 13, 2017 Takes in a video URL to a youtube video, outputs the relative path to the downloaded mp3 Usage: download_youtube_video(video_url) --> returns mp3 filepath ''' vid = Youtube_Video(video_url) vid.set_filename(re.sub('[^a-zA-Z]','',vid.filename).lower()) saved_to = vid.filename if os.path.exists('static/'+saved_to+'.mp4'): print("[=] Video exists...") return 'static/'+saved_to+'.mp4' mp4_vids = vid.filter('mp4') if not len(mp4_vids)>0: return -1 vid = mp4_vids[0] #who gives a f**k about resolution ### UNCOMMENT BELOW FOR PROGRESS # vid.download('static/',on_progress=lambda x,y: print(int(x/y*100))) vid.download('static/') mp4 = 'static/'+saved_to+'.mp4' mp3 = 'static/'+saved_to+'.mp3' # TODO open pipe on init to mass convert videos while keeping ffmpeg open cmd = "ffmpeg -i \"" + mp4 + "\" -vn -ar 44100 -ac 2 -ab 192k -f mp3 \"" + mp3 + "\"" os.system(cmd) try: os.remove(mp4) except Exception as e: print(e) print("-"*60) print("\nFailed to remove "+mp4) return 'static/'+saved_to+'.mp3'
def youtube(): a = var.get() #https://www.youtube.com/watch?v=iCvmsMzlF7o ytvideo = YouTube(a).streams.filter(file_extension="mp4").order_by('resolution').desc().first() ytvideo.download(r"F:\pooja\letsupgrade") print("Entry Box",a)
def downloadVideo(): x = str(mylink.get()) ytvideo = YouTube(x).streams.filter( progressive=True, file_extension='mp4').order_by('resolution').desc().first() # if not os.path.exists('C:\Users\dell\Desktop\AUDIO PLATFORMS'): # os.makedirs('C:\Users\dell\Desktop\AUDIO PLATFORMS') ytvideo.download(r'C:\Users\dell\Desktop\AUDIO PLATFORMS')
def url_fetch(): x = str(mylink.get()) video = YouTube(x).streams.filter( progressive=True, file_extension='mp4').order_by('resolution').desc().first() mys = selector_path.get() video.download(mys) messagebox.showinfo("SUCCESSFULLY", "DOWNLOADED AND SAVED")
def downloadVideo(): x = str(mylink.get()) ytvideo = YouTube(x).streams.filter( progressive=True, file_extension='mp4').order_by('resolution').desc().first() if not os.path.exists('E:\Downloads'): os.makedirs('E:\Downloads') ytvideo.download('E:\Downloads')
def video_download(): if self.url_link.get() == '': messagebox.showinfo(message='URL can not be empty') else: dl_video = YouTube(self.url_link.get()).streams.first() dl_video.download(output_path=tk.filedialog.askdirectory()) messagebox.showinfo(message='Download Complete')
def youtube(): a = var.get() ytvideo = YouTube(a).streams.filter( progressive=True, file_extension="mp4").order_by('resolution').desc().first() ytvideo.download(r'E:\python program') print("Entry box ", a)