Giter Site home page Giter Site logo

musyn's Introduction

Musyn

A tool to more easily synchronize online repositories of music to local storage.

Quickstart

  1. Install musyn. Currently, the only option is by using Nimble with the source code, but I might turn this into a Nimble package at some point.
nimble install
  1. Initialize a repository.
musyn init
  1. Create a source. Currently, the only available type is YouTube, which can be input as "youtube" or "yt".
musyn src-new <name> <type>
  1. Configure required settings. Currently, the only options for YouTube are playlist and channel IDs.
musyn src-mod <name> id <id>
musyn src-mod <name> id_type (playlist | channel)
musyn src-mod <name> file_type <audio file extension>
  1. Synchronize.
musyn sync

All in one, with Qumu's music as an example, that would be:

musyn init

musyn src-new Qumu yt

musyn src-mod Qumu id PL0PCz_ViBzWZPPjiVmYXZWHbXkGpbQNA6
musyn src-mod Qumu id_type playlist
musyn src-mod Qumu file_type mp3

musyn sync

Further reading

Simply running musyn or musyn help will display an overview of the available commands. For more detail, simply run musyn help <command>, or musyn help :<concept> for other information, like available source types or source settings.

musyn's People

Contributors

nichrosia avatar

Stargazers

 avatar

Watchers

 avatar

musyn's Issues

500 Internal Server Error with `musyn sync`

On random occasion, while running musyn sync, a 500 error is raised, exiting the program.

The log, specifically:

/path/to/current/directory $ musyn sync --debug
[E] error in execution! saving existing songs to index...
[D] message:
500 Internal Server Error

About this:

  • the entire Nim error should be shown, as well as the URL used, as merely [D] message: 500 Internal Server Error is rather hostile to debugging.
  • multiple Invidious instances should be used, so that another can be used if one fails.

`musyn status` and `sync` are extremely slow

A very visible pause in execution exists between each entry from status, and sync seems to just hang for several seconds before doing anything, especially if a large number of repositories exist.

Some things in the code that seem problematic:

  • a new HttpClient is instantiated every function call. That obviously needs to be changed.
  • no hashing of any kind seems to exist. Instead, for every single time we check the entire length of the playlist, making lots of requests in the process. Although, at the same time, this may not be possible, depending on whether the YT API provides any unique value that changes every time the playlist is updated.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.