https://github.com/n8henrie/overcast-omnifocus-whisper
Bookmark Overcast podcast segments in OmniFocus and add a transcription to the note
https://github.com/n8henrie/overcast-omnifocus-whisper
Last synced: 3 months ago
JSON representation
Bookmark Overcast podcast segments in OmniFocus and add a transcription to the note
- Host: GitHub
- URL: https://github.com/n8henrie/overcast-omnifocus-whisper
- Owner: n8henrie
- Created: 2024-08-17T15:23:38.000Z (9 months ago)
- Default Branch: master
- Last Pushed: 2024-10-12T21:26:28.000Z (7 months ago)
- Last Synced: 2025-02-12T14:12:33.167Z (3 months ago)
- Language: Nix
- Size: 43 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# overcast-omnifocus-whisper
This is a hodgepodge of scripts that work together to:
- create an OmniFocus task with a timestamped link to the currently playing Overcast track as the note
- filter OmniFocus for tasks with these Overcast links at the beginning of the note
- make a request that uses this link to download the underlying audio file
- converts the file with ffmpeg to a whisper-compatible format
- uses a rust-based whisper implementation to transcribe the audio file
- replaces the task note with this transcriptionThe idea is that I can:
- set this script to run in a cron job
- use my `overcast bookmark` iOS shortcut when I am on the go and hear an
interesting podcast segment
- some time later return to find a timestamped transcription of the podcast in
the task note to figure out what I thought was so interesting at the timeThe parts of script:
- My iOS shortcut is available at [https://www.icloud.com/shortcuts/24cf4a7790fe4cdca3a8ca0eeeb9e462](); I'm not sure if there is a way to include its source contents
- `whisper` is from [https://github.com/huggingface/candle](), compiled with a few features to make it a little faster
- `run.sh` accepts an OmniFocus task ID and Overcast URL to:
- downloads the audio file
- convert with ffmpeg
- performs the transcription with `whisper`
- copy the transcript to stdout
- `overcast-omnifocus-whisper.js` is the primary entrypoint, a JXA script that contains an embedded OmniFocus Automation script to:
- retrieve tasks that contain an Overcast URL in the note
- run `run.sh` and collect the output
- overwrite the task note with a note that contains the transcriptnix (+ flake) users should be able to run all of this machinery with minimal effort: `nix run github:n8henrie/overcast-omnifocus-whisper`