Skip to content

mcreekmore/godlp

Repository files navigation

godlp - Go Command-Line Interface for yt-dlp

Overview

godlp is a Go-based CLI app that wraps commonly used functionality of yt-dlp. It leverages Cobra for building CLI apps and Viper for configuration management, providing a user-friendly tool for downloading web content.

Features

  • Wrapper for yt-dlp: godlp simplifies the usage of yt-dlp by providing sensible defaults and helpful automations in it's CLI interface.
  • Configuration Management: Utilizes Viper for easy configuration management, allowing users to customize settings through configuration files.
  • Extendable: Easily extend and add new features by leveraging the modular nature of Cobra commands.

Install

brew tap mcreekmore/mcreekmore
brew install godlp

Develop

Make sure you have Go installed. Clone the godlp repository and build the executable:

git clone https://github.com/mcreekmore/godlp.git
cd godlp

# run
go run main.go

# build
go build -o godlp main.go

# run built binary
./godlp

Usage

  godlp [command]

Available Commands:
  completion  Generate the autocompletion script for the specified shell
  help        Help about any command
  soundcloud  For downloading tracks from soundcloud

Flags:
      --config string   config file (default is $HOME/.godlp.yaml)
  -h, --help            help for godlp
  -t, --toggle          help message for toggle

Use "godlp [command] --help" for more information about a command.

Configuration

godlp uses Viper for configuration management. The configuration file is located at ~/.godlp.yaml by default. You can customize settings in this file or create a new one using the config command.

Copy the example.godlp.yaml into your home directory.

cp example.godlp.yaml ~/.godlp.yaml

License

This project is licensed under the Unlicense License - see the LICENSE file for details.

Acknowledgments

  • yt-dlp: The underlying tool that godlp wraps.
  • Cobra and Viper: The frameworks used for building the CLI and managing configurations.