Federico Viticci from MacStories created an incredible **Universal Clipper** that uses a powerful combo of Apple Shortcuts + Generative AI + Obsidian.
[Automation Academy: How I Built a Smarter Web Clipper for Obsidian Using Shortcuts and AI](https://club.macstories.net/posts/automation-academy-how-i-built-a-smarter-web-clipper-for-obsidian-using-shortcuts-and-ai)
## Build Log
- 2025-06-17
- Started implementing this from the ground up.
- Chose `{obsidian_vault_root}/personal/UniversalClipper` as the bucket to place all the notes in.
- Signed up for Diffbot / API token is in 1Password.
- Installed Homebrew packages:
- `brew install yt-dlp`
- `brew install llm`
- [GitHub - simonw/llm: Access large language models from the command-line](https://github.com/simonw/llm)
- Install `llm` plugins:
- `llm install llm-gemini`
- Configured API keys for Gemini 2.5 Pro
- [Google Gemini API Keys](https://aistudio.google.com/apikey)
- `llm keys set gemini`
- keys stored in 1Password
- Configured API keys for GPT 4.1
- Signed up for OpenAI API Account --> added billing + auto replenishment to enable API access
- `llm keys set openai`
- keys stored in 1Password
- Installed [Universal Clipper - Video Extract Shortcut](https://www.icloud.com/shortcuts/e490cecfb83d4f7a86bc7faedefdadd9)
- Installed [Sanitize Titles](https://www.icloud.com/shortcuts/ef5652e315c143239deca59014486d72)
- Installed [URL Cleaner Shortcut](https://www.icloud.com/shortcuts/91c45fd3fd3b427897d9ba485efb1227)
- Installed [Actions on the App Store](https://apps.apple.com/us/app/actions/id1586435171)
- Installed [Actions For Obsidian](https://actions.work/actions-for-obsidian/)
- Signed up for Pushover.
- Created *ErikUniversalClipper* application.
- Stored User Key and API key in 1Password.
- I don't currently care about *Function Mode*; I'm just in it to win it with Obsidian.
- Installed [Universal Clipper Shortcut](https://www.icloud.com/shortcuts/2aac263620984e90bfd857ebefa20d83)
- Edit the shortcut
- Adjust the vault and folder path towards the end inside both Actions for Obisidian shortcut actions.
- ![[Pasted image 20250617161313.png]]
- Add the `uc` alias in Raycast to trigger the Universal Clipper shortcut
- ![[Pasted image 20250617161828.png]]
- Error! ![[Pasted image 20250617162011.png]]
- Hmm, time to dig into this.
- Fix the Token variable in this field: ![[Pasted image 20250617162747.png]]
- and here ![[Pasted image 20250617162812.png]]
- and here ![[Pasted image 20250617162855.png]]
- and here ![[Pasted image 20250617162913.png]]
- and here ![[Pasted image 20250617162937.png]]
- and here ![[Pasted image 20250617162955.png]]
- Re-run --> hit allow all a million times to grant future permissions.
-