module main import os import io import metadata fn id3(){ // mut audio := os.open("./data/АЛИСА 11000.mp3") or { panic(err) } // mut audio := os.open("./data/Глава 2. 16 и 17 июля.mp3") or { panic(err) } mut audio := os.open("./out.mp3") or { panic(err) } // mut audio := os.open("./data/01_01.mp3") or { panic(err) } // mut audio := os.open("./test.mp3") or { panic(err) } defer { audio.close() } mut wav := metadata.Audio{} wav.detect_tags(mut audio) println(wav.id3v1.embedded) println(wav.id3v23.embedded) println(wav.id3v24.embedded) if wav.id3v1.embedded { last_bytes := metadata.get_bytes(mut audio, -128, 128) wav.id3v1.get_metadata(last_bytes) println(wav.id3v1) } if wav.id3v23.embedded { wav.id3v23.get_full_size(mut audio) wav.id3v23.fill_tags(mut audio) println(wav.id3v23.to_v1()) wav.id3v23.tit2.encode_size(3) tit2 := wav.id3v23.tit2.get_encoded_frame_tag(3) println(tit2) // println(wav.id3v23.tit2) } if wav.id3v24.embedded { wav.id3v24.get_full_size(mut audio) wav.id3v24.fill_tags(mut audio) println(wav.id3v24.to_v1()) // wav.id3v24.tit2.encode_size(4) // flex := wav.id3v24.talb.get_encoded_frame_tag(4) // println(flex) // println(wav.id3v24.tdrc.data) // wav.id3v24.tdrc.set_data("2017") // enc_size := metadata.encode_header_size(wav.id3v24.size, wav.id3v24.version) // println(enc_size) wav.id3v24.tit2.set_data("2017") wav.id3v24.tpe1.init("tpe1") wav.id3v24.tpe1.set_data("Hello") wav.id3v24.tpe2.init("tpe2") wav.id3v24.tpe2.set_data("Hello2") // metadata.encode_header(mut wav.id3v24) // println(wav.id3v24.encoded_header) // println(wav.id3v24.tpe1.name) wav.id3v24.encode_embed_tags() println(wav.id3v24.encoded_header.len) wav.id3v24.insert_tags_into_audio(mut audio) // println(wav.id3v24) mut f := os.create("./temp.mp3") or { panic(err) } f.write(wav.id3v24.encoded_header) or { panic(err) } f.close() // println(wav.id3v24) // mut audio_2 := os.open("./out.mp3") or { panic(err) } // data := io.read_all(reader: audio_2) or { [u8(0), u8(0), u8(0), u8(0)] } // println(data) println(wav.id3v24.size) println(wav.id3v24.encoded_header) } // println(wav.id3v23) // println(wav.id3v23.tit2) // converted_idv31 := wav.id3v1.to_v23() // println(converted_idv31) // println(last_bytes) // flex := wav.id3v1.to_bytes() // audio.seek(-1, os.SeekMode.end) or { panic(err) } // flex1 := audio.tell() or { panic(err) } // mut all_bytes := audio.read_bytes(int(flex1))#[..-128] // all_bytes << flex // println(all_bytes.len) // println(int(flex1)) // all_bytes := wav.id3v1.insert(mut audio, -128) // os.write_bytes("./test.mp3", all_bytes) or { panic(err) } } fn main(){ id3() }