aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Hurst <julian.hurst92@gmail.com>2021-07-27 03:05:31 +0200
committerJulian Hurst <julian.hurst92@gmail.com>2021-07-27 03:05:31 +0200
commit975286228e26bc3c06f33961948fa55056b33bf7 (patch)
tree99ebc5d00a09bbeec82d6616de6367f56ffdabf3
parent6573f6d5854676fdfa0f143d253e3a863dd56e49 (diff)
downloadmetube-master.tar.gz
Add 'export to json' supportHEAD1.1.0master
-rw-r--r--doc/metube.1.scd3
-rw-r--r--metube.go13
2 files changed, 15 insertions, 1 deletions
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)
+ }
}