diff --git a/owl/README.md b/owl/README.md index aa4744ba..5d02e521 100644 --- a/owl/README.md +++ b/owl/README.md @@ -18,8 +18,8 @@ In this owl folder should go all documents we produce for this Endeavour. - [x] Find out how we can set that Twitter Emojis are standard - system emojis on windows are terrible. - [x] Find out how we can set a theme by default for new users. - [x] img tags in messages should be rendered, without requiring them to be on a local cache. We do not need to secure against identification attacks. - - [ ] youtube links should create embedded players (if enabled). - - [ ] 9gag links with videos should allow them to be played if possible on demand. + - [x] youtube links should create embedded players (if enabled). + - [x] 9gag links with videos should allow them to be played if possible on demand. ## Commit Messages diff --git a/owl/REPORT-003-external-videos.md b/owl/REPORT-003-external-videos.md new file mode 100644 index 00000000..6052b3b0 --- /dev/null +++ b/owl/REPORT-003-external-videos.md @@ -0,0 +1,337 @@ +# OWL Report #003 - External Video Embeds (YouTube + Direct Video URLs) + +Date: 2026-04-17 + +## The Goal + +Two README items merge naturally into one feature: + +- **YouTube links** should create embedded players (click-to-play). +- **9gag-style direct video URLs** (e.g. `https://img-9gag-fun.9cache.com/photo/aYQnPXN_460svav1.mp4`) should be playable inline. + +Both are "external video in the timeline". They share the same wiring points (URL detection → card renderer in `RenderMessageContent.tsx`) and the same policy model (`'always' | 'homeserver' | 'never'`, mirroring the external-images setting). Different rendering tech: YouTube needs an iframe, direct videos use the `