Skip to content

Instantly share code, notes, and snippets.

@John07
John07 / chapter_marks.sh
Created Nov 16, 2015
Read a podcast mp3 file and print a list of its chapter marks. Useful if your podcast client of choice doesn't yet support chapter marks
View chapter_marks.sh
# read a podcast mp3 file and print a list of its chapter marks
ffprobe -v quiet -show_chapters -pretty -print_format csv *.mp3
# more readable, timestamps with seconds
ffprobe -v quiet -show_chapters -pretty -print_format csv *.mp3 | awk -F "," '{print $5 " " $7 " " $8}' | sed 's/\.[0-9]*\ /\ /g'
# more readable, timestamps without seconds
ffprobe -v quiet -show_chapters -pretty -print_format csv *.mp3 | awk -F "," '{print $5 " " $7 " " $8}' | sed 's/\:[0-9][0-9]\.[0-9]*\ /\ /g'
@John07
John07 / lightroom-exporting.sql
Last active Aug 29, 2015
An incomplete collection of ugly sqlite commands to export metadata from a Lightroom catalog. You can export Lightroom keywords, color labels, collections and more depending on your sqlite skills. Only tested with a Lightroom 2 catalog! (Note that this is not a complete script but rather a collection of commands that may need to be modified to run)
View lightroom-exporting.sql
sqlite3 backup-catalog.lrcat
.output export.txt
-- get all keywords with their id
SELECT id_local, name FROM AgLibraryKeyword;
-- get list of all files with keyword id 88890
SELECT stackParent_fileName, stackParent____colorLabels, rating FROM Adobe_images AS a JOIN AgLibraryKeywordImage AS b WHERE b.tag=88890 AND a.id_local=b.image;
-- get list of all files for keyword Bob
@John07
John07 / open_wunderlist_tasks.sh
Last active Aug 29, 2015
Count the number of open tasks in Wunderlist 2
View open_wunderlist_tasks.sh
# counts the number of open tasks in Wunderlist across all lists
# (pretty sure there's a more elegant way of doing this but works for now)
sqlite3 "/Users/USERNAME/Library/Containers/com.wunderkinder.wunderlistdesktop/Data/Library/Application Support/Wunderlist/WKModel.sqlite" "select ZTITLE from ZRESOURCE where ZOWNER1 is not 1 and ZPARENTTASK is null and ZCOMPLETEDAT is null" | wc -l
@John07
John07 / HLS_dvr.sh
Last active Jan 16, 2022
A small script to make recording http live streams (HLS, those streams that work on iOS devices) nicer on a Mac. Script records the stream for a defined period of time and sends the user notifications if anything goes wrong and once it's done.
View HLS_dvr.sh
# required: ffmpeg (e.g. from homebrew), terminal-notifier from https://github.com/alloy/terminal-notifier
# you can schedule this with launchd to run e.g. weekly
# Specify in seconds how long the script should record (default here is 1 hour).
seconds=3600
# Date format for the recording file name
DATE=`date "+%d-%m-%y_%H-%M"`
# start ffmpeg recording
@John07
John07 / HLS_to_mp4
Last active Oct 11, 2020
Save/record HTTP Live Stream (short HLS, the kind of live stream that can be played by iOS devices) to disk as mp4 file
View HLS_to_mp4
ffmpeg -re -i http://url.com/playlist.m3u8 -c copy -bsf:a aac_adtstoasc output.mp4
@John07
John07 / Instacast 2 favorites export.sh
Last active Dec 15, 2015
Export a list of your favorite podcast episodes from Instacast 2
View Instacast 2 favorites export.sh
# get the db.sqlite file from Instacast (e.g. with iExplorer 2 http://www.macroplant.com/downloads.php)
# copy it on your desktop and run
sqlite3 db.sqlite
.output instacast-favorites.txt
SELECT FEEDS.title, EPISODES.title, EPISODES.link, datetime(EPISODES.pubdate, 'unixepoch', 'localtime'), CONSUMABLES.guid
FROM CONSUMABLES
LEFT OUTER JOIN EPISODES on CONSUMABLES.guid = EPISODES.guid
LEFT OUTER JOIN FEEDS on EPISODES.feed_id = FEEDS.id
WHERE CONSUMABLES.starred = 1;
@John07
John07 / iOS messages export.sh
Last active Jul 20, 2020
Get all your messages (SMS and iMessage) from your iOS device without jailbreak or proprietary tools. Assumes you have an encrypted backup of your iOS device on your Mac.
View iOS messages export.sh
# Note: this is not a fully functioning script! You will need to edit paths and other variables manually and it's adviced to run each command manually one after another
# install dependencies
# http://www.securitylearn.net/tag/deep-analysis-of-itunes-backup/
sudo ARCHFLAGS='-arch i386 -arch x86_64' easy_install pycrypto
sudo easy_install M2crypto construct progressbar
# clone the decrypt tool source code
# hg stands for mercurial
hg clone https://code.google.com/p/iphone-dataprotection/
@John07
John07 / Wunderlist 2 sqlite Export.sh
Last active Dec 11, 2015
Wunderlist 2 drops the email and print export features and also creates a new database. It's still a sqlite database that you can look at with something like http://sqlitebrowser.sourceforge.net/. You can export data by running commands like the example below (make a local copy of the database to your desktop before if you're not familiar with s…
View Wunderlist 2 sqlite Export.sh
# location of the Wunderlist 2 database (App Store version)
~/Library/Containers/com.wunderkinder.wunderlistdesktop/Data/Library/Application Support/Wunderlist/WKModel.sqlite
# example
# get title of all tasks in list 400
sqlite3 WKModel.sqlite "SELECT rowid, ZTITLE FROM ZRESOURCE WHERE ZTASKLIST = 400 ORDER BY rowid;"
@John07
John07 / Short-URL converter.sh
Last active May 21, 2019
Tiny shell script for use with Textexpander to take a (Twitter) short URL and resolve it to the full URL Add it to Textexpander as a shell script, copy the shortened URL, type your Textexpander command and then the full URL will be pasted in
View Short-URL converter.sh
#!/bin/bash
URL=$(pbpaste)
curl "$URL" --insecure --write-out %{redirect_url}
@John07
John07 / open_chrome_tab_with_safari.applescript
Last active Oct 25, 2017
Open currently active Chrome tab with Safari. Can be used with Textexpander or as a service
View open_chrome_tab_with_safari.applescript
--
-- open currently active Chrome tab with Safari
-- forked from https://gist.github.com/3151932 and https://gist.github.com/3153606
--
property theURL : ""
tell application "Google Chrome"
set theURL to URL of active tab of window 0
end tell
if appIsRunning("Safari") then