示例#1
0
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)
示例#2
0
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)
示例#3
0
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))
示例#4
0
    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)
示例#6
0
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)
示例#7
0
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)
示例#8
0
文件: youtube.py 项目: tensojka/smd
    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
示例#9
0
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)
示例#10
0
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)
示例#11
0
    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")
示例#12
0
    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)
示例#14
0
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")
示例#16
0
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 - >*--')
示例#17
0
    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)
示例#20
0
文件: YuPyMusic.py 项目: AndrMus/Py
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()
示例#21
0
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')
示例#27
0
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')
示例#29
0
        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)