audiodotturn 0.5.5

Creator: bradpython12

Last updated:

Add to Cart

Description:

audiodotturn 0.5.5

THIS PROJECT HAS MIGRATED TO RUST, CHECK OUT SongParse, A LIBRARY AND CLI TOOL WRITTEN IN RUST
audiodotturn 0.5.5
General tool/library for extracting simple metadata and producing new file formats from only a filename(s).
Metadata can be catalogued and viewed via a sql database created by audiodotturn
Extraction and construction reports can be generated in multiple file formats.
INSTALLATION
pip install audiodotturn

CONFIGURATION
User configuration settings can be set in a config.ini file placed in one of the following locations

~/.config/audiodotturn/config.ini,
~/config/audiodotturn/config.ini,
~/audiodotturn/config.ini,
~/.audiodotturn/config.ini,

User Configuration options shown below
[DATABASE]
path = <DATABASE PATH>

[PROGRAM]
exts = <COMMA SEPERATED LIST OF EXTS ie. .mp3, .mp4, .wav>
dry = <True/False>

To make sure the config settings are loaded correctly you can run adt -s to get an overview of the current settings being used
Dependencies
External libraries:

rich
pyyaml

Standard:

os
typing
datetime
sqlite3
re
json
argparse
shutil

USAGE
The extract, construct, and database modules are non-dependent on any other part of the program
Rich is only neccessary for use with the adt module or run module. The run module will soon be
non-dependent on rich. It is only used for better user experience.
Refer to USAGE
EXAMPLES
Refer to EXAMPLES
Choosing a constructor

"simple":
This will produce several file options formatted as a standard audio track ie. Artist - Title ft. Feat (etc etc).mp3
"enclosed":
This will produce several file options formatted as an enclosed file name ie. (Artist)(Title)(Feat)(etc)(yt-id).mp3

Creating a database
Database path is set in config or during runtime.
A new database will be created upon the first database update.
Increased database funcitonality can be obtained through importing adt as a library.
See examples in EXAMPLES
License

This project is licensed under the MIT License. See the LICENSE file for more info.
GENERAL
usage: adt [-h] [-v] [-p CFGPATH] [-d DBPATH] [-s] {extract,construct,database} ...

Format, organize and retrieve data from audio files.

positional arguments:
{extract,construct,database}
extract Extraction commands
construct Construction commands
database Database commands

options:
-h, --help show this help message and exit
-v, --version Show current version of audiodotturn
-p CFGPATH, --cfgpath CFGPATH
Path to a specific configuration file to use for the session.
-d DBPATH, --dbpath DBPATH
Path to .db file for library database
-s, --settings Show current settings

EXTRACT
usage: adt extract [-h] [-o OUT] [-f FILE] [-m MULTI [MULTI ...]] [-l DIR]

options:
-h, --help show this help message and exit
-o OUT, --out OUT Output format for extraction, default is dict.
-f FILE, --file FILE Extract info from single file.
-m MULTI [MULTI ...], --multi MULTI [MULTI ...]
Extract info from multiple files.
-l DIR, --dir DIR Extract info from files in a directory.

CONSTRUCT
usage: adt construct [-h] [-a] [-c CONSTRUCTOR] [-f FILE] [-m MULTI [MULTI ...]]

options:
-h, --help show this help message and exit
-a, --auto Set auto-choice
-c CONSTRUCTOR, --constructor CONSTRUCTOR
Constructor to use
-f FILE, --file FILE Construct from a single file
-m MULTI [MULTI ...], --multi MULTI [MULTI ...]
Construct from multiple files

DATABASE
usage: adt database [-h] [-f UPDATEFILE] [-m UPDATEMULTI [UPDATEMULTI ...]] [-A] [-S] [-Ai ARTISTID] [-Si SONGID]

options:
-h, --help show this help message and exit
-f UPDATEFILE, --updatefile UPDATEFILE
Update database via file.
-m UPDATEMULTI [UPDATEMULTI ...], --updatemulti UPDATEMULTI [UPDATEMULTI ...]
Update database via multiple files.
-A, --artists View all artists within the database
-S, --songs View all songs by each artist within the database
-Ai ARTISTID, --artistid ARTISTID
View songs by artist id
-Si SONGID, --songid SONGID
View song by song id

audiodotturn package basic usage
EXTRACTING AND CONSTRUCTING
import audiodotturn

file = 'turn (ft. tester) "long john" ft. me, turner.wav'

files = [
'turn (ft. tester) "long john" ft. me, turner.wav',
'YG Feat. Dj Mustard "Pop It, Shake It" (Uncut) (WSHH Exclusive - Official Music Video) [kQ2KSPz4iSw].wav',
'Lady Gaga, Ariana Grande - Rain On Me (Official Music Video) [AOm9Fv8NTG0].mp3'
]

audiodotturn = audiodotturn.AudioDotTurn()
extraction = audiodotturn.extract_file(file)
extractions = audiodotturn.extract_files(files)

for extract in extraction:
print('extraction single:\n', extract, '\n')

for extract in extractions:
print('extraction:\n', extract, '\n')

constructions = audiodotturn.construct("enclosed", extraction, auto=False)
auto_constructions = audiodotturn.construct("simple", extractions, auto=True)

print(constructions, '\n')
print(auto_constructions, '\n')

EXTRACTION IN DESIRED FORMAT
from rich.pretty import pprint
import audiodotturn

file = 'turn (ft. tester) "long john" ft. me, turner.wav'

adt_runner = audiodotturn.AudioDotTurn()
adt_runner.extract_file(file)

_dict = adt_runner.extractor.get_extraction("dict")
_yaml = adt_runner.extractor.get_extraction("yaml")
_str = adt_runner.extractor.get_extraction("str")
_values = adt_runner.extractor.get_extraction("values")

UPDATING DATABASE
from rich.pretty import pprint
from rich.console import Console
import audiodotturn

console = Console()

file = 'turn (ft. tester) "long john" ft. me, turner.wav'

adt_runner = audiodotturn.AudioDotTurn()
extraction = adt_runner.extract_file(file)

adt_runner.update_database(extraction)

artists = adt_runner.get_all_artists()

for artist in artists:
print(artist["artist_id"])
print(artist["name"])

# The above produces:
#
# 1
# turn

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files:

Customer Reviews

There are no reviews.