Skip to main content

Get those bangers banging 🔥

Project description

BangerBot — Get those bangers banging 🔥

Poetry Python Versions Ruff PyPI - Version PyPI - Status PyPI - License

What is this for?

Preparing a DJ set and digging for tracks car be very time consuming and cumbersome. This is a tool aimed for DJs to ease their workflow by providing them a simple utility to download their favorites (FREE !) tracks.

It's as simple as this:

banger get https://soundcloud.com/fc_kabagar/kylie-on-jersey

When you're in a digging session, you might not want to spend time getting your tracks in-between each listening, but you still want to save them. Just write your tracks urls (Youtube or Soundcloud) inside your ~/Music/bangerbot/bangers.txt file. When you're ready, run a batch to catch'em all:

banger batch

When downloading your bangers, BangerBot will automatically put them either in bangerbot/HQ-tracks/ (High Quality) or bangerbot/LQ-tracks/ (Low Quality) depending on their audio format, ready to be imported to your Traktor, Rekordbox or Serato libraries:

banberbot_tree

BangerBot will write the urls of all the downloaded tracks in bangers_history.txt.

But... why?

BangerBot is essentially a wrapper around scdl and yt-dlp. You could run a command with either of them and get the same result as with BangerBot. But you'd have to first decide which CLI tool to use depending on the source (Youtube or Soundcloud) and then remember their commands and all the options each time.

Here's what the equivalent of banger get <youtube_url> looks like with, e.g., yt-dlp:

yt-dlp --format bestaudio[ext=m4a] <youtube_url> -P <your_download_directory>

What BangerBot provides is mainly 2 things:

  • A simple and consistent interface, because you don't care if that track is coming from SoundCloud or Youtube, you just want to get it.
  • A workflow utility that helps you get straight to the point and reduce the hassle when preparing a DJ set.

Installation

1. Install pipx

If you don't have it, install pipx

MacOS

brew install pipx
pipx ensurepath

Linux

python3 -m pip install --user pipx
python3 -m pipx ensurepath

2. Install BangerBot

pipx install bangerbot

3. Run init

Follow the prompt to setup the folder used by BangerBot:

banger init

This will create the bangerbot folder and install the scdland yt-dlp dependencies via pipx if they are not found

Use BangerBot

get

Download a banger:

banger get https://soundcloud.com/fc_kabagar/kylie-on-jersey

batch

Download multiples bangers at once. Simply put your tracks url inside bangers.txt (1 url per line) and run a batch:

banger batch

The default location for bangers.txt is ~/Music/bangerbot/bangers.txt but you can change it when setting up with banger init or you can point to any file you like using the -f option.

banger batch -f ~/Music/some_more_bangers.txt

Supported urls

For now, BangerBot only supports SoundCloud and Youtube urls.

Roadmap

  • Support Youtube and SoundCloud urls
  • banger get
  • banger batch
  • Tests
  • Improve history format: banger_name: short_url
  • Shell completion
  • banger info to get info about a track
  • banger history to display history
  • banger where to show the location of the bangerbot folder
  • Safely clear banger.txt content after download
  • Fetch metadata to downloaded tracks

Disclaimer

Supporting music artists is very important to keep them bangers coming. This tool is intended to get tracks when they are made freely available for download by the producer or as a last resort if you really can't get the track anywhere else.

Besides, tracks that are not freely available will be downloaded in .mp3 or .m4a which might sound ok for you at home but probably won't on a larger sound system.

Do not use this tool to steal artists and music producers hard work, seriously. 🙏

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bangerbot-0.1.4.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

bangerbot-0.1.4-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file bangerbot-0.1.4.tar.gz.

File metadata

  • Download URL: bangerbot-0.1.4.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.0 CPython/3.11.0 Linux/6.2.0-1015-azure

File hashes

Hashes for bangerbot-0.1.4.tar.gz
Algorithm Hash digest
SHA256 a13bfec4728f22b5d70e3b9ae25499a7cc5b46fdf0bf6d8b0c3a2e9bfb0a6e3b
MD5 c75a1c5a689ca7bb7de73122b738acb2
BLAKE2b-256 fc7ca73d5f139c7cfa28a2944d5d89d8a2168097b255e8191dcdf541b9120c82

See more details on using hashes here.

File details

Details for the file bangerbot-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: bangerbot-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 7.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.0 CPython/3.11.0 Linux/6.2.0-1015-azure

File hashes

Hashes for bangerbot-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 2549bbc787814d8560b28ae5e0a100f4af4c20856e8e31b09f5208338192a53e
MD5 2a51ceec530fd854beeae092c8282691
BLAKE2b-256 8da32ab6de2468383a25da1790cbdb0288f7d3357e6ed5aca2a6eb2f80cdb06a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page