-from pytubefix import YouTube, Playlist
-import requests
-import subprocess
-import os
import glob
+import os
+import subprocess
+
+import requests
+from pytubefix import YouTube, Playlist
def check_playlist(links):
def get_and_download(link):
yt = YouTube(link)
- if fix_filename(yt.title) + '.mp4' in glob.glob("*.mp4"):
- print(f"{yt.title} is already downloaded")
- return
-
- yt.check_availability()
- print(f"Fetching stream for {yt.title}")
-
- assert len(yt.streams.filter(only_audio=True)) > 0, "No available audio streams"
- audio_stream = yt.streams.filter(only_audio=True).order_by("abr").last()
-
- print(f"Downloading audio stream for {yt.title}")
- audio_stream.download(filename=fix_filename(audio_stream.default_filename), skip_existing=True)
+ # if fix_filename(yt.title) + '.mp4' in glob.glob("*.mp4"):
+ # print(f"{yt.title} is already downloaded")
+ # return
- # create thumbnail file
- data = requests.get(yt.thumbnail_url).content
- thumbnail_filename = f'{fix_filename(audio_stream.title)}.jpg'
- with open(thumbnail_filename, 'wb') as f:
- f.write(data)
+ # yt.check_availability()
+ # print(f"Fetching stream for {yt.title}")
+ #
+ # assert len(yt.streams.filter(only_audio=True)) > 0, "No available audio streams"
+ # audio_stream = yt.streams.filter(only_audio=True).order_by("abr").last()
- command = [
- 'ffmpeg',
- '-i', fix_filename(audio_stream.default_filename),
- '-i', thumbnail_filename,
- '-map', '0',
- '-map', '1',
- '-metadata', f'title={fix_filename(audio_stream.title)}',
- '-metadata', f'artist={yt.author}',
- '-metadata', f'date={yt.publish_date}',
- '-metadata', f'comment={big_num_format(yt.views) + " views"}',
- fix_filename(audio_stream.title) + ".mp4",
- '-n'
- ]
- subprocess.run(command)
- # clean up tmp files
- os.remove(thumbnail_filename)
- os.remove(fix_filename(audio_stream.default_filename))
+ # hierarchy:
+ caption_hierarchy = ["ko", "ja", "zh", "en", "a.ko", "a.en"]
+ if len(yt.captions) > 0:
+ for caption in yt.captions:
+ print(yt.title, caption.lang_code)
+ # print(f"Downloading audio stream for {yt.title}")
+ # audio_stream.download(filename=fix_filename(audio_stream.default_filename), skip_existing=True)
+ #
+ # # create thumbnail file
+ # data = requests.get(yt.thumbnail_url).content
+ # thumbnail_filename = f'{fix_filename(audio_stream.title)}.jpg'
+ # with open(thumbnail_filename, 'wb') as f:
+ # f.write(data)
+ #
+ # command = [
+ # 'ffmpeg',
+ # '-i', fix_filename(audio_stream.default_filename),
+ # '-i', thumbnail_filename,
+ # '-map', '0',
+ # '-map', '1',
+ # '-metadata', f'title={fix_filename(audio_stream.title)}',
+ # '-metadata', f'artist={yt.author}',
+ # '-metadata', f'date={yt.publish_date}',
+ # '-metadata', f'comment={big_num_format(yt.views) + " views"}',
+ # fix_filename(audio_stream.title) + ".mp4",
+ # '-y'
+ # ]
+ # subprocess.run(command)
+ #
+ # # clean up tmp files
+ # os.remove(thumbnail_filename)
+ # os.remove(fix_filename(audio_stream.default_filename))