# SmallTag
A module that extends [TinyTag](https://github.com/tinytag/tinytag)'s capabilities by also writing tags.
### Features
| Feature | Details | State |
|--------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------|
| ID3 Writing | Strings Integers Links Images | Partially Implemented |
| Ogg Vorbis Writing | Strings Integers Links Images | Partially Implemented |
## Installation
Simply let pip install the package:
``` bash
pip install smalltag@git+https://teapot.informationsanarchistik.de/Wobbl/SmallTag.git
```
### SmallTag As A Dependency
If you are working on a project that uses SmallTag,
the line in your requirements.txt that corresponds to SmallTag should contain this:
```
smalltag @ git+https://teapot.informationsanarchistik.de/Wobbl/SmallTag.git#egg=smalltag
```
## Usage
> [!CAUTION]
> Please note that this module is still in development and could corrupt the audio file.
Reading works in exactly the same way as with TinyTag. \
Example:
```Python3
from smalltag import SmallTag
tag = SmallTag.get("test.mp3")
print(tag.title)
# Example Output: Test
```
But this module also adds support for writing metadata.
Just use the `write()`-function on a loaded tag to write the metadata to the file. \
Example:
```Python3
from smalltag import SmallTag
tag = SmallTag.get("test.mp3")
print(tag.title)
# Example Output: Test
tag.title = "Another Test"
tag.write()
```
When you then load the metadata again, you will see that the title has changed:
```Python3
from smalltag import SmallTag
tag = SmallTag.get("test.mp3")
print(tag.title)
# Example Output: Another Test
```