diff options
| author | Julian Hurst <julian.hurst92@gmail.com> | 2021-01-10 16:29:56 +0100 |
|---|---|---|
| committer | Julian Hurst <julian.hurst92@gmail.com> | 2021-01-10 16:29:56 +0100 |
| commit | fb1bac137a395686369904a1da341351d88b071b (patch) | |
| tree | c1f746fc717a70dd1662704def6b17fd6604732b /metube.go | |
| download | metube-fb1bac137a395686369904a1da341351d88b071b.tar.gz | |
Initial commit
Diffstat (limited to 'metube.go')
| -rw-r--r-- | metube.go | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/metube.go b/metube.go new file mode 100644 index 0000000..ca270bc --- /dev/null +++ b/metube.go @@ -0,0 +1,40 @@ +package main + +import ( + "flag" + "strings" + "bufio" + "os" + + "git.sr.ht/~ark/ytparser" +) + +const defaultFormat string = "channel: {{.ChannelTitle}}, title: {{.Title}}, url: {{.Url}}" + +func readStdin() string { + var b strings.Builder + scanner := bufio.NewScanner(os.Stdin) + for scanner.Scan() { + b.WriteString(scanner.Text()) + } + if err := scanner.Err(); err != nil { + panic(err) + } + return b.String() +} + +func main() { + format := flag.String("f", defaultFormat, "The format to print items in. Follows go template syntax. See metube(5) for more info.") + page := flag.Int("p", 0, "The page to get") + lang := flag.String("l", "en", "The language to search in (follows youtube's language codes: en, fr, de, jp...)") + order := flag.String("o", "relevance", "The criterion to use for the search order (relevance, date, views, rating)") + flag.Parse() + if *format == "-" { + *format = readStdin() + } + items, err := ytparser.Search(strings.Join(flag.Args(), " "), *page, *lang, *order) + if err != nil { + panic(err) + } + ytparser.PrintItems(items, *format) +} |
