Skip to content

Instantly share code, notes, and snippets.

@rickt
rickt / wvdl.sh
Created May 18, 2022 21:54
widevine downloader & decrypter
#! /bin/bash
#
# rough and ready bash script to download & decrypt a widevine-encrypted video via MPD URL
# this will work with (for example) channel5 UKTV
#
# assumptions:
# 1) the following binaries are in your $PATH:
# curl, ffmpeg, head, jq, mp4decrypt, yt-dlp
#
# this script requires 2x arguments:
@rickt
rickt / fogdownloader.sh
Created January 20, 2022 21:09
souf bay cam downloader bash script/hack
#! /bin/bash
# set required date range using epoch. sample data used below
RANGE=`seq 1642701000 50 1642710633`
# ensure tmp folder exists
TEMPDIR=/tmp/fogpics_$$
[ ! -d "$TEMPDIR" ] && mkdir -p $TEMPDIR
# download the pics
@rickt
rickt / gdf.go
Last active February 21, 2020 23:41
gdf: Google Drive Find -- Search for a file in Google Drive using a service account and the (Golang) Google Drive API (v3)
package main
import (
"fmt"
"github.com/dustin/go-humanize"
"golang.org/x/oauth2"
"golang.org/x/oauth2/google"
"google.golang.org/api/drive/v3"
"io/ioutil"
"log"
import os
from google.cloud import bigquery
def csv_loader(data, context):
client = bigquery.Client()
dataset_id = os.environ['DATASET']
dataset_ref = client.dataset(dataset_id)
job_config = bigquery.LoadJobConfig()
job_config.schema = [
bigquery.SchemaField('id', 'INTEGER'),
package main
// https://rickt.org/2019/01/08/playing-with-g-suite-mdm-mobile-device-data-using-go/
import (
"context"
"errors"
"flag"
"fmt"
"github.com/dustin/go-humanize"
#
# Example fluentd config file for nginx access log injection into Google Bigquery
# collecting nginx access log
<source>
@type tail
tag accesslogs-rickts-dev-box
path /var/log/nginx/access.log
format apache
buffer_type file
@rickt
rickt / slackweatherbot.go
Created August 20, 2018 17:31
A weatherbot for Slack written in go
package slackweatherbot
import (
owm "github.com/briandowns/openweathermap"
"golang.org/x/net/context"
"google.golang.org/appengine"
"google.golang.org/appengine/log"
"google.golang.org/appengine/urlfetch"
"net/http"
"os"
@rickt
rickt / slackaccessloglooker.go
Created August 5, 2016 04:15
call the slack team.accessLogs API to output which of your Slack users are not using a desktop or mobile Slack app
package main
import (
"encoding/json"
"fmt"
"log"
"net/http"
"strings"
"time"
)
@rickt
rickt / analyticsdumper.go
Last active April 11, 2020 16:19
example Go code showing how to download reporting data from Google Analytics using the Core Reporting API, a Google service account + oauth2 (UPDATE: go here http://code.rickt.org/post/142445693275/updated-golang-code-to-query-ga-data-via-the instead)
package main
import (
"fmt"
"golang.org/x/oauth2"
"golang.org/x/oauth2/jwt"
"google.golang.org/api/analytics/v3"
"io/ioutil"
"log"
"time"
@rickt
rickt / slackminisniffer.go
Created March 5, 2016 00:32
slack mini "sniffer", connects to slack and outputs the messages received over the slack websocket
package main
import (
"fmt"
"github.com/nlopes/slack"
)
func main() {
// create new slack object & connect
api := slack.New("TOKEN_REDACTED")
api.SetDebug(true)
rtm := api.NewRTM()