From 975286228e26bc3c06f33961948fa55056b33bf7 Mon Sep 17 00:00:00 2001 From: Julian Hurst Date: Tue, 27 Jul 2021 03:05:31 +0200 Subject: Add 'export to json' support --- doc/metube.1.scd | 3 +++ metube.go | 13 ++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/doc/metube.1.scd b/doc/metube.1.scd index 6cd422d..81323a1 100644 --- a/doc/metube.1.scd +++ b/doc/metube.1.scd @@ -32,6 +32,9 @@ It uses ytparser under the hood. *-p int* The page to get +*-j* + Export the items to json + # SEE ALSO *metube*(5) diff --git a/metube.go b/metube.go index b436a3d..43184d9 100644 --- a/metube.go +++ b/metube.go @@ -2,9 +2,11 @@ package main import ( "flag" + "fmt" "strings" "bufio" "os" + "encoding/json" "git.sr.ht/~ark/ytparser" ) @@ -28,6 +30,7 @@ func main() { 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, ja...)") order := flag.String("o", "relevance", "The criterion to use for the search order (relevance, date, views, rating)") + jsonExport := flag.Bool("j", false, "Export to json") flag.Parse() if *format == "-" { *format = readStdin() @@ -36,5 +39,13 @@ func main() { if err != nil { panic(err) } - ytparser.PrintItems(items, *format) + if *jsonExport { + by, err := json.Marshal(items) + if err != nil { + panic(err) + } + fmt.Println(string(by)) + } else { + ytparser.PrintItems(items, *format) + } } -- cgit v1.2.3