package ytdl import ( "context" "crypto/sha256" "fmt" "io" "log" "os" "time" "gitea.voser.cloud/Golang/GoDown/handlers/sqldb" "gopkg.in/vansante/go-ffprobe.v2" ) func AddMedia(ytid string) { DB = sqldb.Opendb() defer DB.Close() fileinfo, err := os.Stat(Filepath) check(err) file, err := os.Open(Filepath) check(err) defer file.Close() hash := sha256.New() if _, err := io.Copy(hash, file); err != nil { log.Fatal(err) } ctx, cancelFn := context.WithTimeout(context.Background(), 5*time.Second) defer cancelFn() ffprobe, err := ffprobe.ProbeURL(ctx, Filepath) if err != nil { log.Panicf("Error getting data: %v", err) } sqlinsert := fmt.Sprintf("INSERT INTO testdb.media (ytid,size,sha256sum,duration) VALUES ('%s','%d','%x','%f')", ytid, fileinfo.Size(), hash.Sum(nil), ffprobe.Format.DurationSeconds) fmt.Println(sqlinsert) dbinsert, err := DB.Query(sqlinsert) check(err) defer dbinsert.Close() }