youtuber/youtubedl/client.go

33 lines
656 B
Go

package youtubedl
import (
"fmt"
"log"
"os/exec"
"path"
)
type Client struct {
}
func New() (*Client, error) {
return &Client{}, install()
}
func (c *Client) Download(video, local string) error {
cmd := exec.Command("youtube-dl", "-f", "22", "-o", local, "--write-sub", "--write-auto-sub", "--sub-format", "srt", video)
log.Println(cmd.Path, cmd.Args)
out, err := cmd.CombinedOutput()
if err != nil {
err = fmt.Errorf("%v: %s", err, out)
return err
}
cmd = exec.Command("python3", "-m", "vtt_to_srt", path.Dir(local))
out, err = cmd.CombinedOutput()
if err != nil {
err = fmt.Errorf("%v: %s", err, out)
return err
}
return nil
}