foxygit / ytmdl Log in
commits tags

/src/ytmdl/__main__.py · 939 B

raw
from __future__ import annotations

import argparse
from pathlib import Path

from .app import DEFAULT_OUTPUT_DIR, YtmdlApp


def main() -> None:
    parser = argparse.ArgumentParser(
        prog="ytmdl",
        description="TUI for downloading audio from YouTube / YouTube Music URLs and playlists.",
    )
    parser.add_argument(
        "-o",
        "--output-dir",
        type=Path,
        default=DEFAULT_OUTPUT_DIR,
        help=f"Directory to save downloaded audio files (default: {DEFAULT_OUTPUT_DIR})",
    )
    parser.add_argument(
        "-f",
        "--format",
        dest="audio_format",
        default="mp3",
        choices=["mp3", "m4a", "flac", "opus", "wav", "vorbis"],
        help="Audio format to convert downloads to (default: mp3)",
    )
    args = parser.parse_args()

    app = YtmdlApp(output_dir=args.output_dir, audio_format=args.audio_format)
    app.run()


if __name__ == "__main__":
    main()