t2f30 ys - scripts - random scripts [h|git clone git://parazyd.org/scripts.git|URL:git://parazyd.org/scripts.git|server|port] [1|Log|/git/scripts/log.gph|server|port] [1|Files|/git/scripts/files.gph|server|port] [1|Refs|/git/scripts/refs.gph|server|port] --- [1|commit 0f137bc0349c5839ddf2e5f3a48416438de7549b|/git/scripts/commit/0f137bc0349c5839ddf2e5f3a48416438de7549b.gph|server|port] [1|parent 03dc04f52bf41dedfdec38532eb7df43873144ff|/git/scripts/commit/03dc04f52bf41dedfdec38532eb7df43873144ff.gph|server|port] [h|Author: parazyd |URL:mailto:parazyd@dyne.org|server|port] Date: Wed, 15 Feb 2017 05:35:22 +0100 2f30 ys Diffstat: C ys -> obsolete/ys | 0 M ys | 67 ++++++++++++++++--------------- 2 files changed, 34 insertions(+), 33 deletions(-) --- [1|diff --git a/ys b/obsolete/ys|/git/scripts/file/obsolete/ys.gph|server|port] [1|diff --git a/ys b/ys|/git/scripts/file/ys.gph|server|port] t@@ -1,37 +1,38 @@ #!/bin/sh # -# perform a search on youtube and return the best result (title + link) - -usage() { - echo "`basename $0` [-htu] [-n ] " - - test -z "$1" && return - - cat < results (default: 3) -EOF +# 2f30 +# search youtube via api + +KEY="AIzaSyAa5gAarPnuu9zTVjpp6mPyStbY17uuhSE" +NRES=10 + +search() { + sstr="" + if [ ${#} -ne 1 ]; then + for arg in $@; do + sstr=$sstr"$arg|" + done + else + sstr=$1 + fi + + curl -s \ + -G "https://www.googleapis.com/youtube/v3/search" \ + -d part="snippet" \ + -d q=$sstr \ + -d maxResults=$NRES \ + -d key=$KEY | \ + jq '[.items[] | {"title":.snippet.title, + "url": ["https://www.youtube.com/watch?v=" + .id.videoId] }]' - } -num=10 -regex='^.*]*>\([^<]*\).*$' -output='\2 - https://youtube.com\1' - -while getopts "hn:tu" OPT; do - case $OPT in - n) num=$OPTARG;; - t) output='\2';; - u) output='http://youtube.com\1';; - h) usage long; exit 0;; - *) usage; exit 1;; - esac -done - -shift $((OPTIND - 1)) - -query=$(echo $@ | tr ' ' '+') -url="https://www.youtube.com/results?search_query=${query}" - -curl -k -s "$url" | sed -n "s,$regex,$output,p" | sed ${num}q +case $1 in + -n) + NRES=$2 + shift 2 + search $@ + ;; + *) + search $@ + ;; +esac