Compare commits

...

2 Commits
1.0.0 ... main

Author SHA1 Message Date
1a04de439c feat: set best audio quality 2025-04-11 19:18:29 +00:00
42cd0865a5 fix: fix error video format not available 2024-10-12 09:14:36 +00:00
3 changed files with 15 additions and 6 deletions

View File

@ -7,7 +7,7 @@ tmp_dir = "tmp"
bin = "./tmp/main"
cmd = "go build -o ./tmp/main ."
delay = 1000
exclude_dir = ["assets", "tmp", "vendor", "testdata"]
exclude_dir = ["assets", "tmp", "vendor", "testdata", "ui"]
exclude_file = []
exclude_regex = ["_test.go"]
exclude_unchanged = false

View File

@ -1,6 +1,7 @@
package lib
import (
"fmt"
"time"
"rul.sh/go-ytmp3/utils"
@ -75,6 +76,10 @@ func InitTaskScheduler() *TaskScheduler {
Album: task.Album,
})
if err != nil {
fmt.Println(err)
}
task.IsPending = false
task.Error = err
task.Result = result

View File

@ -18,8 +18,11 @@ import (
"rul.sh/go-ytmp3/utils"
)
func fetchVideo(video *goutubedl.Result, out string, ch chan error) {
dl, err := video.Download(context.Background(), "best")
func fetchAudio(video *goutubedl.Result, out string, ch chan error) {
dl, err := video.DownloadWithOptions(context.Background(), goutubedl.DownloadOptions{
DownloadAudioOnly: true,
AudioFormats: "best",
})
if err != nil {
ch <- err
return
@ -113,6 +116,7 @@ func convertToMp3(data ConvertOptions, ch chan error) {
input := []*ffmpeg.Stream{ffmpeg.Input(data.Video).Audio()}
args := ffmpeg.KwArgs{
"format": "mp3",
"ab": "320k",
"id3v2_version": "3",
"write_id3v1": "1",
"metadata": []string{
@ -167,7 +171,7 @@ func Yt2Mp3(video *goutubedl.Result, options Yt2Mp3Options) (string, error) {
videoSlug = slug.Make(title)
}
videoSrc := fmt.Sprintf("%s/%s.mp4", tmpDir, videoSlug)
audioSrc := fmt.Sprintf("%s/%s-src.mp3", tmpDir, videoSlug)
thumbnail := fmt.Sprintf("%s/%s.jpg", tmpDir, videoSlug)
out := fmt.Sprintf("%s/%s.mp3", options.OutDir, videoSlug)
@ -178,7 +182,7 @@ func Yt2Mp3(video *goutubedl.Result, options Yt2Mp3Options) (string, error) {
videoCh := make(chan error)
thumbCh := make(chan error)
go fetchVideo(video, videoSrc, videoCh)
go fetchAudio(video, audioSrc, videoCh)
go fetchThumbnail(video, thumbnail, thumbCh)
err := <-videoCh
@ -196,7 +200,7 @@ func Yt2Mp3(video *goutubedl.Result, options Yt2Mp3Options) (string, error) {
convertCh := make(chan error)
go convertToMp3(ConvertOptions{
Video: videoSrc,
Video: audioSrc,
Thumbnail: thumbnail,
Title: title,
Artist: artist,