Browse Source

Updated README

main
Unbewohnte 3 years ago
parent
commit
8b1d50a9ba
  1. 121
      README.md

121
README.md

@ -18,7 +18,7 @@
**ID3v2**. can: **ID3v2**. can:
- read - read
- write
--- ---
@ -37,110 +37,9 @@ go install github.com/Unbewohnte/id3ed/...
--- ---
# ∙ Examples # ∙ Example
## ⚬ Directly reading ID3v1
```
package main
import(
"fmt"
id3v1 "github.com/Unbewohnte/id3ed/v1"
)
func main() {
mp3file, err := os.Open("/path/to/mp3/myMP3.mp3")
if err != nil {
panic(err)
}
// extract ID3v1.1 tag
mp3tag, err := id3v1.Readv1Tag(mp3file)
if err != nil {
panic(err)
}
// print the whole tag
fmt.Printf("%+v",mp3tag)
// get certain fields
songname := mp3tag.SongName
genre := mp3tag.Genre
// etc.
}
```
## ⚬ Directly writing ID3v1
```
package main
import(
"fmt"
id3v1 "github.com/Unbewohnte/id3ed/v1"
)
func main() {
f, err := os.OpenFile("/path/to/file/myfile.mp3",os.O_WRONLY, os.ModePerm)
if err != nil {
panic(err)
}
defer f.Close()
// create your tags struct
tag := &id3v1.ID3v1Tag{
SongName: "mysong",
Artist: "me",
Album: "my album",
Year: 2021,
Comment: "Cool song",
Track: 1,
Genre: "Christian Gangsta Rap", // for list of genres see: "./v1/genres.go"
}
// write tags to file
err = tag.WriteToFile(f)
if err != nil {
panic(err)
}
}
```
## ⚬ Directly reading ID3v2
```
package main
import(
"fmt"
id3v2 "github.com/Unbewohnte/id3ed/v2"
)
func main() {
mp3file, err := os.Open("/path/to/mp3/myMP3.mp3")
if err != nil {
panic(err)
}
// extract ID3v2 tag
mp3tag, err := id3v2.Readv2Tag(mp3file)
if err != nil {
panic(err)
}
// you can get some essential frames` contents from getters ## ⚬ Read/Write v1&&v2 tags
title := tag.Title() // string
// or get direct frame by id
commentFrame := tag.GetFrame("COMM") // *Frame
// commentFrame.(Header.(...)|Contents)
// etc.
}
```
## ⚬ Easier way to read/write tags
``` ```
package main package main
@ -149,6 +48,7 @@ import(
"fmt" "fmt"
"github.com/Unbewohnte/id3ed" "github.com/Unbewohnte/id3ed"
id3v1 "github.com/Unbewohnte/id3ed/v1" id3v1 "github.com/Unbewohnte/id3ed/v1"
id3v2 "github.com/Unbewohnte/id3ed/v2"
) )
func main() { func main() {
@ -158,12 +58,24 @@ func main() {
} }
// reading and writing tags is easy and done by one struct ! // reading and writing tags is easy and done by one struct !
// print all v2 frames
if f.ContainsID3v2 { if f.ContainsID3v2 {
for_, frame := range f.ID3v2Tag.Frames{ for_, frame := range f.ID3v2Tag.Frames{
fmt.Printf("%s\n", frame.Header.ID) fmt.Printf("%s\n", frame.Header.ID)
} }
} }
// create your own v2 tag from custom frames
myframe, _ := id3v2.NewFrame("TXXX", []byte("Very important data (ᗜˬᗜ)") ,true)
v2tag := id3v2.NewTAG([]id3v2.Frame{*myframe})
// replace v2 tag of the file
f.WriteID3v2(v2tag)
// create your own ID3v1 tag
tag := &id3v1.ID3v1Tag{ tag := &id3v1.ID3v1Tag{
SongName: "mysong", SongName: "mysong",
Artist: "me", Artist: "me",
@ -174,6 +86,7 @@ func main() {
Genre: "Christian Gangsta Rap", // for list of genres see: "./v1/genres.go" Genre: "Christian Gangsta Rap", // for list of genres see: "./v1/genres.go"
} }
// write your v1 tag
err = f.WriteID3v1(tag) err = f.WriteID3v1(tag)
if err != nil { if err != nil {
panic(err) panic(err)

Loading…
Cancel
Save