Giter Club home page Giter Club logo

tagreaders's Introduction

This is a set of utilities used for managing a library of .mp3 files. Initially it consisted only of readers of audio metadata (hence the name), but with time it evolved to include more functionalities.

  • id3v1read reads ID3v1 metadata from .mp3 files. It has no dependencies on external libraries.

  • tagread is based on tagblib and reads metadata from all types of files supported by that library.

  • csvscrob reads metadata and writes the output in format compatible with Universal Scrobbler "bulk scrobble" mode. It used to be a part of tagread, but later became a separate application.

  • spectrogram creates spectrograms of audio files. It supports all audio formats recognized by sox. Useful for spotting lossy transcodes.

  • namesanitizer removes spaces and characters outside of ASCII set from file and directory names. Target character set is [a-z0-9_-].

  • bitratechecker is a tool for checking uniformity of a set of .mp3 files. The name is a bit misleading: encoder information is also taken into account.

  • beetstats generates statistics of beets library, and stores the results in machine-readable format.

tagreaders's People

Contributors

arcctgx avatar

Watchers

 avatar

tagreaders's Issues

csvscrob: no time advance on short tracks

Tracks shorter than 30 seconds are not supposed to be scrobbled, and they are ignored. But current time should advance by the length of this track. This is not the case now:

> csvscrob -t 0:00:00 12_you_suffer.ogg 01_continue.ogg 
track too short (4s), skipping.
"Lull", "Continue", "Continue", "2017-04-30 00:04:00", "", "3720"

The 2nd track should be scrobbled at 00:04:04.

csvscrob calculates wrong scrobble timestamps

last.fm uses the following logic to determine if the track will be scrobbled:

  • if track is less than 8 minutes long, then scrobble past half of track
  • if track is 8 minutes long or longer, scrobble past 4 minutes

But this logic is used only to determine whether the track will be scrobbled. If the track is scrobbled, the timestamp of playback start is used.

Currently csvscrob uses time at half of the track (or at 4 minutes into the track if it's long) as timestamp, which is incorrect. Since we assume all given tracks must be scrobbled, we shouldn't care about the logic described above.

csvscrob: wrong date calculation when moving past midnight

> csvscrob -t "2017-04-29 23:58:45" 01_stream_endless.ogg 
"Lull", "Stream Endless", "Dreamt About Dreaming", "2017-04-30 01:02:45", "", "709

This is correctly scrobbled after 4 minutes, but for some reason one hour is added to the time.

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.