Skip to content

Automatically generate mixtapes for your sangeet songs

Notifications You must be signed in to change notification settings

netvarun/sangeet.js

Repository files navigation

Welcome to Sangeet.js 👋

License: MIT

Sangeet Mixtapes

Automatically generate mixtapes for your sangeet songs

About

Solves the painstaking task of ripping, concatenating, and mixing songs from Youtube.

  1. Takes in a spreadsheet with all the songs, with their start and stop times along with how you want them faded in and out.
  2. All songs under the same act and scene will be combined into a single song.
  3. Will download from youtube, extract out the best possible audio quality and will trim, fade in/out, concatenate and rename the songs accordingly.

Under the hood it primarily devolves to youtube-dl and ffmpeg for all the heavy-lifting. sangeet.js takes a batteries-included, sane-defaults, best quality (ymmv) approach to dealing with the crazy number of codecs that youtube runs. In the process, I ended up learning a lot about ffmpeg (amazing tool!) and life. Of course, all credit goes to Stackoverflow.

Given this Spreadsheet

get this Files

Features

  1. Idempotent® - Each run will create a separate folder so your songs won't get mixed up.
  2. Intelligence Caching® - Each run will only download unseen Youtube songs.
  3. Impress your bride/groom/in-laws/cousins/uncles/aunts/grandmas/grandpas/great-great-uncle/cousin-third-removed's-grandparents with realtime audio mixtape generation

Disclaimer

  1. This was hacked together over a Sunday to bring some order and sanity into the house and our lives.
  2. Code is written exactly how a recovering perl hacker now business guy would write in node.js. Caveat emptor.
  3. Only tested on a Mac (don't see any reason why it won't work on linux. Windows I have no clue)

Requirements

  1. youtube-dl (brew install youtube-dl)

  2. ffmpeg (brew install ffmpeg)

Install

npm install

Usage

Clone this spreadsheet: https://docs.google.com/spreadsheets/d/1CM-PR-QzbHH8hFtqQuNrBGXUhL30l1G8rxtxPedhqic/edit#gid=0

Export this spreadsheet as csv to the folder of sangeet.js

node sangeet.js NAME_OF_SPREADSHEET.csv

And voila, you will see a new folder called run_... which contain all the files. Note it will have a lot of intermediary files. You want to look for all the files that end with _combined.m4a. This is the final mixtape output for you to share with your party.

If you want all the intermediary files to be cleared, you can instead run the command below (basically with an additional parameter 1). Note: Only run this if you are ok with the risk of a rm command being run (more specifically grep -v combined.m4a | xargs -n1 rm) (Cue to Disclaimer)

node sangeet.js NAME_OF_SPREADSHEET.csv 1

Author

👤 Sivamani Varun

Show your support

Give a ⭐️ if this project helped you!


This README was generated with ❤️ by readme-md-generator

About

Automatically generate mixtapes for your sangeet songs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published