about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLars Kappert <lars@webpro.nl>2024-11-05 13:43:20 +0100
committerGitHub <noreply@github.com>2024-11-05 12:43:20 +0000
commitf8fb6cb9b3aabdc3cfb08675d63e48bdd5e43f61 (patch)
tree5255abb994ec3682815d2258f9aea7677029988f
parentab4e36115b390cb69b2dcd31e340898afcbef22a (diff)
downloadvoidsky-f8fb6cb9b3aabdc3cfb08675d63e48bdd5e43f61.tar.zst
Fix start value in youtube embed by removing "s" from url param (#6113)
-rw-r--r--__tests__/lib/string.test.ts12
-rw-r--r--src/lib/strings/embed-player.ts7
2 files changed, 17 insertions, 2 deletions
diff --git a/__tests__/lib/string.test.ts b/__tests__/lib/string.test.ts
index f226de992..e212ef5c9 100644
--- a/__tests__/lib/string.test.ts
+++ b/__tests__/lib/string.test.ts
@@ -335,8 +335,10 @@ describe('shortenLinks', () => {
 describe('parseEmbedPlayerFromUrl', () => {
   const inputs = [
     'https://youtu.be/videoId',
+    'https://youtu.be/videoId?t=1s',
     'https://www.youtube.com/watch?v=videoId',
     'https://www.youtube.com/watch?v=videoId&feature=share',
+    'https://www.youtube.com/watch?v=videoId&t=1s',
     'https://youtube.com/watch?v=videoId',
     'https://youtube.com/watch?v=videoId&feature=share',
     'https://youtube.com/shorts/videoId',
@@ -444,6 +446,11 @@ describe('parseEmbedPlayerFromUrl', () => {
     {
       type: 'youtube_video',
       source: 'youtube',
+      playerUri: 'https://bsky.app/iframe/youtube.html?videoId=videoId&start=1',
+    },
+    {
+      type: 'youtube_video',
+      source: 'youtube',
       playerUri: 'https://bsky.app/iframe/youtube.html?videoId=videoId&start=0',
     },
     {
@@ -454,6 +461,11 @@ describe('parseEmbedPlayerFromUrl', () => {
     {
       type: 'youtube_video',
       source: 'youtube',
+      playerUri: 'https://bsky.app/iframe/youtube.html?videoId=videoId&start=1',
+    },
+    {
+      type: 'youtube_video',
+      source: 'youtube',
       playerUri: 'https://bsky.app/iframe/youtube.html?videoId=videoId&start=0',
     },
     {
diff --git a/src/lib/strings/embed-player.ts b/src/lib/strings/embed-player.ts
index d0d8277c8..9ee5128c8 100644
--- a/src/lib/strings/embed-player.ts
+++ b/src/lib/strings/embed-player.ts
@@ -88,7 +88,9 @@ export function parseEmbedPlayerFromUrl(
   // youtube
   if (urlp.hostname === 'youtu.be') {
     const videoId = urlp.pathname.split('/')[1]
-    const seek = encodeURIComponent(urlp.searchParams.get('t') ?? 0)
+    const t = urlp.searchParams.get('t') ?? '0'
+    const seek = encodeURIComponent(t.replace(/s$/, ''))
+
     if (videoId) {
       return {
         type: 'youtube_video',
@@ -111,7 +113,8 @@ export function parseEmbedPlayerFromUrl(
       isShorts || isLive
         ? shortOrLiveVideoId
         : (urlp.searchParams.get('v') as string)
-    const seek = encodeURIComponent(urlp.searchParams.get('t') ?? 0)
+    const t = urlp.searchParams.get('t') ?? '0'
+    const seek = encodeURIComponent(t.replace(/s$/, ''))
 
     if (videoId) {
       return {