README file from
GithubDrive Embedder
Upload local files to Google Drive and embed them directly in your Obsidian notes with intuitive size options.
Features
- 🚀 One-Click Upload: Upload files directly to Google Drive from Obsidian
- 🔗 Auto Embed Generation: Automatically creates embed code for your notes
- 📐 Intuitive Size Options: Clear size labels like "Compact", "Medium", "Large", "Full Width"
- 🎵 Audio Optimized: Special compact sizes for audio files ("Slim", "Standard")
- 📂 Multi-Format Support: Video (MP4, WebM, MOV, AVI), Audio (MP3, WAV, OGG, M4A), PDF, Images (JPG, PNG, GIF, WebP, SVG)
- 🔄 Real-Time Progress: Visual upload progress tracking
- 🎨 Beautiful UI: Clean, intuitive interface with worldwide language support
Installation via BRAT
- Install BRAT plugin
- Open Obsidian Settings → BRAT → Add Beta plugin
- Enter this repository URL:
reallygood83/obsidian-embedder - Click "Add Plugin"
- Enable "Drive Embedder" in Settings → Community plugins
Google OAuth Setup
Before using the plugin, you need to set up Google OAuth credentials:
1. Create Google Cloud Project
- Go to Google Cloud Console
- Create a new project or select an existing one
- Enable Google Drive API:
- Navigate to "APIs & Services" → "Library"
- Search for "Google Drive API"
- Click "Enable"
2. Configure OAuth Consent Screen
- Go to "APIs & Services" → "OAuth consent screen"
- Select "External" user type
- Fill in required fields:
- App name: "Drive Embedder"
- User support email: Your email
- Developer contact: Your email
- Add scope:
https://www.googleapis.com/auth/drive.file - Save and continue
3. Create OAuth Credentials
- Go to "APIs & Services" → "Credentials"
- Click "Create Credentials" → "OAuth Client ID"
- Application type: Desktop app
- Name: "Drive Embedder"
- Click "Create"
- Copy the Client ID and Client Secret
4. Configure Plugin
- Open Obsidian Settings → Drive Embedder
- Paste your Client ID
- Paste your Client Secret
- Click "Connect"
- Follow the browser authorization flow
- Grant permissions to your Google Drive
Usage
Upload and Embed Files
- Click the cloud upload icon in the ribbon, or
- Use command palette: "Drive Embedder: upload file and embed"
- Select a file or drag & drop
- Choose your preferred size (intuitive size labels)
- Click "Upload & Embed"
- Embed code is automatically inserted at cursor position
Size Options
Video & Documents
- 🔹 Compact: Perfect for inline content
- 🔸 Medium: Recommended for most use cases
- 🔶 Large: For detailed viewing
- 🟠 Full Width: Immersive viewing experience
Audio
- 🎵 Slim: Minimal space (100px height)
- 🎶 Standard: With padding (120px height)
Images
- 🔹 Small: 300px width
- 🔸 Medium: 500px width
- 🔶 Large: 800px width
- 🟠 Original Size: Full resolution
Settings
- Google OAuth: Client ID and Client Secret
- Drive Folder: Upload destination path (default:
Obsidian/DriveEmbedder) - Show Title: Display filename above embed by default
- Default Theme: Auto-detect system theme or force light/dark
- Default Sizes: Set preferred sizes for each content type
Supported File Types
| Category | Formats |
|---|---|
| 🎬 Video | MP4, WebM, MOV, AVI |
| 🎵 Audio | MP3, WAV, OGG, M4A |
| 📄 Document | |
| 🖼️ Image | JPG, PNG, GIF, WebP, SVG |
Security & Privacy
- Your files are uploaded to your own Google Drive
- OAuth tokens are stored locally in Obsidian
- No third-party servers involved
- Files are set to public sharing (required for embedding)
Troubleshooting
"Not Connected"
- Verify Client ID and Client Secret are correct
- Ensure Google Drive API is enabled
- Check OAuth consent screen is configured
Upload Fails
- Check internet connection
- Verify Google Drive has sufficient storage
- Try disconnecting and reconnecting
Token Expired
- Plugin automatically refreshes tokens
- If issues persist, disconnect and reconnect
Version History
v1.0.7 (2025-12-03)
- 🌍 Complete Internationalization: All user-facing text converted to English for worldwide distribution
- 📝 Updated Interface: Settings, modals, notices, and help documentation now in English
- 🌐 Global Ready: Plugin prepared for official Obsidian community plugin registry
- No functionality changes - all features work exactly as before
v1.0.6 (2025-12-03)
- Audio Player Fix: Increased audio embed height for proper Google Drive player display
- Changed audio heights: 슬림 (54px → 100px), 표준 (80px → 120px)
- Google Drive audio player now displays correctly with all controls visible
- Matches Google Drive's native audio player interface requirements
v1.0.5 (2025-12-03)
- Major Fix: Switched to iframe-based embed for video/audio
- Resolved large file playback issues (files > 25MB)
- Now uses Google Drive's native player via
/previewURL - Eliminates virus scan redirect issues with direct download URLs
- Improved compatibility with all file sizes
- More stable playback in Obsidian share notes
v1.0.4 (2025-12-03)
- Critical Fix: Corrected Google Drive URL parameter order
- Fixed URL format from
?id=...&export=downloadto?export=download&id=... - Videos and audio now play correctly without webContentLink dependency
- Eliminated URL format inconsistencies
v1.0.3 (2025-12-03)
- Fixed: Video/audio embed now uses HTML5 tags for immediate playback
- Fixed: Eliminated "video still processing" error from Google Drive
- Improved: Direct content URL embedding for faster media loading
- Videos and audio files now play instantly without Google Drive processing delay
v1.0.0 (2025-01-25)
- Initial release
- Google Drive upload with OAuth 2.0
- Intuitive Korean size labels
- Multi-format support (video, audio, PDF, images)
- Auto embed code generation
- Real-time upload progress
Development
# Clone repository
git clone https://github.com/reallygood83/obsidian-embedder.git
# Install dependencies
npm install
# Build plugin
npm run build
# Development mode
npm run dev
Credits
Developed by reallygood83
License
MIT License
Copyright (c) 2025 reallygood83
This project is licensed under the MIT License - see the LICENSE file for details.
Support
Found a bug or have a feature request? Please open an issue on GitHub.