From 5ce6f618acb8a7d25c88414fd331398d4645d122 Mon Sep 17 00:00:00 2001 From: 20xd6 <20xd6@airmail.cc> Date: Wed, 13 Sep 2023 18:36:48 -0400 Subject: [PATCH] Basic working script Updated the gitnore for media files. --- .gitignore | 2 ++ download.py | 30 ++++++++++++++++++++++++++++++ yt2mp3 | 1 + yt2mp3.py | 18 ++++++++++++++++++ 4 files changed, 51 insertions(+) create mode 100644 download.py create mode 120000 yt2mp3 create mode 100755 yt2mp3.py diff --git a/.gitignore b/.gitignore index 671e374..00e9876 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +*.mp3 +*.webp # ---> Linux *~ diff --git a/download.py b/download.py new file mode 100644 index 0000000..c8eb498 --- /dev/null +++ b/download.py @@ -0,0 +1,30 @@ +import yt_dlp as yt + +def get(yt_url): + ytdl_options = { + 'continuedl': True, + 'ignoreerrors': True, + 'outtmpl': '%(title)s.%(ext)s', + 'no_warning': True, + 'progress_hooks': [dl_progress], + #'quiet': True, + 'writethumbnail': True, + 'embed_metadata': True, + 'format': 'any/bestaudio/best', + # ℹ️ See help(yt_dlp.postprocessor) for a list of available Postprocessors and their arguments + 'postprocessors': [{ # Extract audio using ffmpeg + 'key': 'FFmpegMetadata' + },{ + 'key': 'FFmpegExtractAudio', + 'preferredcodec': 'mp3', + + }] + } + + with yt.YoutubeDL(ytdl_options) as ytdl: + ytdl.download(yt_url) + + +def dl_progress(d): + if (d['status'] == 'finished'): + print("\nDownload completed.") \ No newline at end of file diff --git a/yt2mp3 b/yt2mp3 new file mode 120000 index 0000000..13db220 --- /dev/null +++ b/yt2mp3 @@ -0,0 +1 @@ +yt2mp3.py \ No newline at end of file diff --git a/yt2mp3.py b/yt2mp3.py new file mode 100755 index 0000000..a9d34f7 --- /dev/null +++ b/yt2mp3.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python3 + +import argparse +import download + +script_version = "0.2" +help_epilog = ("This script is very dependent on yt-dlp.\n"+ + "If it's not working properly try updating yt-dlp.") + +cmd_option_set = argparse.ArgumentParser(description='Backup YouTube channels.', epilog=help_epilog) +cmd_option_set.add_argument('--version', '-v', dest='print_version', action='store_true', help='Print the current version number.') +cmd_option_set.add_argument(dest='url_to_convert', help="The URL of the YouTube video you're converting to a local mp3.") +cmd_options = cmd_option_set.parse_args() + +if (cmd_options.print_version): + print("Version: " + script_version) +else: + download.get(cmd_options.url_to_convert)