Add youtube-highlights extension#23756
Conversation
- Merge pull request raycast#19 from getdekoded:preparing-for-prod - chore(functions): rebuild with JSDoc comments preserved - docs: Update Raycast metadata, README, and add screenshots for store submission - feat: Refactor browser preference loading, centralize video extraction script, update Raycast auth redirect URIs, and add a new Arc debug probe script. - refactor(raycast): remove Obsidian and Notion export functionality - feat(raycast): fetch Pro status from API instead of stale JWT claims - chore: Remove verbose console logging and debugging statements from various modules. - fix(functions): resolve body parser stream error in Firebase Functions v2 - refactor: remove redundant JSDoc comments from utility functions - chore: Remove development-specific code and debug logs from auth and storage utilities, archiving the removed code in a new documentation file. - removed comments - fix: clarify no video found error message and ensure command exits - fix: Add robust error handling for browser tab queries to prevent crashes from AppleScript errors. - Updates and analysis - feat(website): Add branding images and update page content - docs: Add development notes and research - chore: Update gitignore - fix(auth,raycast): Minor updates to auth and sync - chore(firebase): Add production project configuration - refactor(functions): Simplify config and clean up code - feat(website): Prepare website for production launch - feat: add `com.raycast://` and `com.raycast:/` to allowed Raycast production redirect URIs - preparing raycast to test prod - cleanup - Updating next to bypass vulnerability - making space on laptop - Merge pull request raycast#15 from getdekoded:verifying-firebase-firestore - fix: address CodeRabbit review issues across functions and Raycast - fixes - feat: implement background sync and fix critical runtime issues - preferences - feat(functions): Add Firebase Functions API infrastructure - docs: add Kofi Functions Architecture and implementation plan - docs: Organize .notes directory into logical folders - feat(raycast): Add backup/restore for free users and improve auth flow - Merge pull request raycast#14 from getdekoded:marketing-website - fix(website): CodeRabbit review fixes - 6 issues resolved - fix: patch React Server Components vulnerability (CVE-2025-55182) - new rules - feat(website): add SEO metadata and fix inaccurate feature claims - chore(website): sync lockfile with package.json versions - added more quotes - fix(website): address CodeRabbit review issues - feat(website): integrate interactive Raycast demo and landing page - raycast ui - feat(website): add raycast landing page and dynamic quote cards - fix(website): address CodeRabbit review findings - feat(website): rebuild Pro page with pricing cards and update footer nav - feat(website): add Collector use case and refine layouts - refactor(website): enhance Lifelong Learner page with improved spacing and visual consistency - first iteration - chore: remove .DS_Store files from tracking - Merge pull request raycast#12 from getdekoded/better-highlight-creation - Fixes - perf(arc): optimize background video detection speed - fix: improve background video detection with robust isPlaying check - feat: Add deep state probe utility to gather detailed YouTube player information from Arc browser tabs. - refactor: Make `getBackgroundPlayingVideo` optional on `BrowserAdapter` and call it type-safely. - refactor: improve JSON parsing error handling by logging a warning and returning null on failure - fix: enable stealth background extraction for Arc - docs: confirm Arc blocks all background tab data extraction - docs: add Arc learnings about pinned tabs and background DOM limitations - feat: pivot to foreground-only extraction and remove background processing - fix(browser): improve foreground extraction robustness with null check - docs: Update JXA learnings and add background extraction deep dive - docs: Document Arc JXA learnings and background flow pivot - feat: Add background - Updates - Code reveiw - feat(create-highlight): streamline extraction flow with auto-fallback - fix(browser): restore regex escaping in JXA script and update learnings - fix(browser): reliably extract metadata from background Arc tabs - logger - feat: Implement manual timestamp input, enhance video metadata fallback handling, and integrate a new logger. - feat: Implement manual time input, add Arc browser preference, and enhance browser interaction with JXA, logging, and related documentation. - chore: fix linting and formatting issues - Merge pull request raycast#11 from getdekoded:feat/raycast-auth - fix: Correct Raycast redirect URI and refine token refresh logic to explicitly handle expired tokens without a refresh token. - fix: address PR review comments - feat: update \'Get Raycast\' button text to \'Get The App\' - feat: configure external link based on deployment environment - fix(auth): allow custom redirect schemes without strict URL parsing - feat: security hardening and code quality improvements - feat(raycast): implement Recent Highlights view with simplified UX - refactor: address code review comments and improve UX - feat(raycast): Implement Free/Pro tiers, Sync logic, and UI refinements - Planning - feat: implement detail views and comprehensive documentation - feat: finalize raycast auth UI and document free vs pro features - ui: use extension-icon-big.png for command and auth icons - ui: use extension-icon-big for command icons - ui: reduce icon size to 64x64 in sign-in view - fix: update UserToken interface to match firebase token structure - ui: update sign-in page with custom logo and privacy fixes - fix: map user_id to uid in auth utility - debug: log decoded token structure - chore: v0.04 - add service-account.json to gitignore - fix: support service account JSON from env var for Vercel - chore: bump to v0.03 - trigger rebuild with admin credentials - debug: add comprehensive logging to token exchange flow - chore: bump version to v0.02 for deployment verification - chore: add debug logs for firebase config - chore: add version and timestamp to landing page for verification - fix(auth): allow com.raycast redirect and register commands - feat: implement raycast auth and pro features - add website - Update to content - Merge pull request raycast#10 from getdekoded:feat/central-auth - PR fixes - feat(auth): harden security for oauth flow and add legal pages - feat(auth): initialize centralized auth service - added sample auth website - feat: Implement advanced features for YouTube Highlights - chore: Configure monorepo workspaces and gitignore - chore: Initialize monorepo structure - UI cleanup (raycast#9) - UI cleanup - Refactor URL Input Section layout by repositioning icon and adjusting spacing for improved UI consistency. - Added guide - its-50-hide-elements-that-arent-ready-and-fix-ui-overflow (raycast#8) - its-50-hide-elements-that-arent-ready-and-fix-ui-overflow - its-49-fix-android-cicd (raycast#7) - its-49-fix-android-cicd - its-48-fix-cicd-for-web (raycast#6) - Refactor Firebase configuration in .firebaserc to standardize app names for staging and dev environments; update binary configuration files for multiple architectures in Android app. - Refactor firebase.json to support multiple hosting targets (staging, prod, dev) with enhanced configuration including CORS and cache control headers. - uses: actions/checkout@v3 - Enhance deployment workflow by setting up SSH key, configuring Git for SSH access, and testing SSH connection to GitHub - Update genie dependency URL to use SSH format - GENIE_ACCESS_SECRET 2 - GENIE_ACCESS_SECRET - Update genie dependency to use Git URL and reference; adjust binary configuration files for multiple architectures - Update deployment workflow to build web from main_development.dart; remove unused character count and storytime examples - target - no web renderer - test - test cicd - its-48-fix-cicd-for-web - its-47-ui-cleanup (raycast#5) - its-47-ui-cleanup - 03-13-its-29_create_first_highlight_mode_flow (raycast#4) - 03-13-its-29_create_first_highlight_mode_flow - its-30-experiment-with-supereditor (raycast#3) - its-30-experiment-with-supereditor - ITS-29 create first highlight mode flow (raycast#2) - ITS-29 create first highlight mode flow - Refactor video data models and update addition date handling (raycast#1) - Enhance video handling and initialization in app startup - Refactor video data models and update addition date handling - Enhance paste handling and processing overlay in HomePage - Refactor HomeController and enhance paste handling in HomePage - Update routes to include QuickTest page and refactor video response handling - Refactor video handling and enhance data models - Add export for paths.dart in core.dart - Remove deprecated extensions.mdc file and refactor video-related imports and models - Integrate Remote Config with Dynamic UI Strings - Implement comprehensive Landing Page with responsive design and Google Sign-In - Enhance Videos View with Decorative Icons and Section Headers - Add keyboard shortcut hints and tooltips across views - Add keyboard shortcuts panel and enhance keyboard navigation - Refactor Profile Page to ProfileView and Update Routing - Implement comprehensive keyboard navigation and shortcut system - Enhance UI with playful animations and decorative elements - Refactor UI components with Shadcn styling and improved layout - Implement comprehensive video management and UI enhancements - Update HomeAppBar styling and elevation - Implement Videos View and Add Dividers to App Bar and Bottom Navigation - Refactor project dependencies and code quality improvements - Refactor mobile home view layout and animations - Enhance UI animations and layout for mobile home view - Add new video modal and integrate with home page - quick cleanup - Refactor home app bar and shared widgets - Refactor notifications UI with modular components and centralized text - Refactor home page and centralize UI constants - Migrate to Firebase, Riverpod, and update project configuration - Remove boilerplate counter app and simplify main entry points and added a .prototype folder - Added cursor rules - counter app - Initial commit
|
Congratulations on your new Raycast extension! 🚀 Due to our current reduced availability, the initial review may take up to 10-15 business days. Once the PR is approved and merged, the extension will be available on our Store. |
- chore: update root package-lock.json - chore(raycast): add package-lock.json for store submission - fix: update raycast API to 1.104.0 and regenerate lock file
|
This pull request has been automatically marked as stale because it did not have any recent activity. It will be closed if no further activity occurs in the next 7 days to keep our backlog clean 😊 |
|
Hey team @pernielsentikaer Just checking if there is anything I need do or anything that I am missing here? |
|
hi @0xdhrv hope you are good, just checking if there is anything you still need from me on this? Keen to try work on this and get it approved 👋🏾 |
|
Hey @getdekoded 👋 Thanks for your contribution 🔥 I think YouTube has a built-in highlights ↗ feature, so users might get confused since this is a separate service. We should make that clear in the README. If it makes sense, add a note and a link to your service's landing page. |
Updated the Readme.md to provide clarity and explain where to find more info
|
Thanks chief @0xdhrv made the changes to the readme like you suggested, please have a look and let me know if the changes are ok 🙌🏾 |
Greptile SummaryAdds a new YouTube Highlights extension that captures timestamped highlights from YouTube videos playing in Arc browser. The extension implements local storage with optional cloud backup (free) and sync (Pro). Key changes:
Code quality:
Minor issue:
Confidence Score: 4/5
Important Files Changed
|
| interface Preferences { | ||
| highlightDuration: string; | ||
| autoExport: boolean; | ||
| exportFormat: "markdown" | "json" | "csv"; | ||
| showNoteInput: boolean; | ||
| } |
There was a problem hiding this comment.
style: Don't manually define the Preferences interface. Raycast auto-generates preference types in raycast-env.d.ts when the extension runs. Manual definitions can become out of sync with your actual package.json configuration.
Remove this interface and use the auto-generated type:
| interface Preferences { | |
| highlightDuration: string; | |
| autoExport: boolean; | |
| exportFormat: "markdown" | "json" | "csv"; | |
| showNoteInput: boolean; | |
| } | |
| const preferences = getPreferenceValues<Preferences>(); |
Context Used: Rule from dashboard - What: Don't manually define Preferences for getPreferenceValues() or commends Argument interfa... (source)
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
0xdhrv
left a comment
There was a problem hiding this comment.
Looks good to me, approved 🔥
|
Published to the Raycast Store: |
|
🎉 🎉 🎉 Such a great contribution deserves a reward, but unfortunately we couldn't find your Raycast account based on your GitHub username (@getdekoded). Please link your GitHub account to your Raycast account to receive your credits and soon be able to exchange them for some swag. |
Description
YouTube Highlights lets you save timestamped highlights from YouTube videos while watching in Arc browser. Instead of losing valuable insights from podcasts, tutorials, and lectures, capture them instantly with a keyboard shortcut and build a searchable personal knowledge base.
What it does
Why this extension?
We consume hours of YouTube content daily - podcasts, tutorials, documentaries - but retain almost nothing. This extension turns passive watching into active learning by letting you bookmark the moments that matter without interrupting your flow.
Technical notes
Requirements
Screencast
So... lol please excuse me, the video was playing in the bg over me talking 😂🙈
yth-screencast.mp4
Checklist
npm run buildand tested this distribution build in Raycastassetsfolder are used by the extension itselfREADMEare placed outside of themetadatafolder