pythonのライブラリーpytubeの使い方
pytubeの使い方を調べていて以下の記事を見つけたのですが、ここで使われているpytubeがドキュメントに載っていない使い方をしているのでどうなっているの教えて欲しいです。
[Python] YouTubeからビデオをmp4形式でダウンロード
from pytube import YouTube
from enum import Enum
import ffmpeg
import os
import re
class Loader(Enum):
MP4 = 'mp4'
WEBM = 'webm'
def load(self, yt, res):
vd = yt.get(self.value, res)
vd.download('./videos')
def download(url):
ext = 'mp4'
res = ''
exts = []
yt = YouTube()
yt.url = url
for video in yt.videos:
exts.append(video.extension)
if video.extension == 'mp4':
res = video.resolution
if 'mp4' not in exts:
ext = 'webm'
ext = ext.upper()
val = getattr(Loader, ext)
val.load(yt, res)
def rename():
path = os.path.join(os.getcwd(), 'videos')
pattern = re.compile('(mp4|webm)$')
files = os.listdir(path)
for file in files:
if pattern.search(file):
file_path = os.path.join(path, file)
new_file_path = file_path.replace(' ', '_')
os.rename(file_path, new_file_path)
def convert():
path = os.path.join(os.getcwd(), 'videos')
pattern = re.compile('webm$')
files = os.listdir(path)
for file in files:
if pattern.search(file):
file_path = os.path.join(path, file)
stream = ffmpeg.input(file_path)
stream = ffmpeg.hflip(stream)
stream = ffmpeg.output(stream, file_path.replace('.webm', '.mp4'))
ffmpeg.run(stream)
os.remove(file_path)
if __name__ == '__main__':
url = input('url >> ')
download(url)
rename()
convert()
for文のyt.videos
この部分が自分の環境だとうまく動かないのですが、videosの部分はpytubeによるものなのでしょうか?
それとも他のライブラリーによるものでしょうか?