aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)
+ }
}