Skip to content

nateranda/djtools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

djtools

djtools is a library written in Go to manipulate and convert your DJ software libraries. It aims to be simple and fast, it depends on few third-party packages, and it's complete with a robust testing framework. Right now, the tool is only a Go library, but a CLI is planned for standalone use or to ship with other projects.

Features

Conversion

djtools converts your:

  • Tracks
  • Playlists and crates
  • Cue points
  • Hot cues
  • Loops
  • Beat grids

Smart playlist conversion and MP3 offset correction is planned.

Platforms

Currently, djtools supports these platforms:

  • Engine: import
  • Rekordbox XML: import and export

djtools plans to support these platforms:

  • Engine: export
  • Rekordbox: import and export
  • Algoriddim Djay: import and export
  • Serato: import and export
  • VirtualDJ: import and export
  • Mixxx: import and export
  • Spotify: playlist export
  • Soundcloud: playlist export
  • Beatport: playlist export

Utilities

djtools plans to support these utilities:

  • Purchase link finder: import a djtools library, a streaming service playlist, or a song name and get a list of links to buy the song(s) with their respective prices

Usage

Below illustrates basic usage of djtools. The example code imports an Engine library, removes the first playlist from the library, and exports the library to a Rekordbox XML file.

package main

import (
	"log"

	"github.com/nateranda/djtools/engine"
	"github.com/nateranda/djtools/rbxml"
)

func main() {
  // initialize an empty options struct
  importOptions := engine.ImportOptions{}

  // import your Engine library
  library, err := engine.Import("import/path/", importOptions)
  if err != nil {
	  log.Panic(err)
  }

  // modify your library however you want,
  // like removing the first playlist
  library.Playlists = library.Playlists[1:]

  // export to a Rekordbox XML file
  err = rbxml.Export(&library, "export/path/library.xml")
  if err != nil {
	  log.Panic(err)
  }
}

About

Manage and convert your DJ library with Go

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages