diff options
author | Lars Kappert <lars@webpro.nl> | 2024-11-05 13:43:20 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-05 12:43:20 +0000 |
commit | f8fb6cb9b3aabdc3cfb08675d63e48bdd5e43f61 (patch) | |
tree | 5255abb994ec3682815d2258f9aea7677029988f | |
parent | ab4e36115b390cb69b2dcd31e340898afcbef22a (diff) | |
download | voidsky-f8fb6cb9b3aabdc3cfb08675d63e48bdd5e43f61.tar.zst |
Fix start value in youtube embed by removing "s" from url param (#6113)
-rw-r--r-- | __tests__/lib/string.test.ts | 12 | ||||
-rw-r--r-- | src/lib/strings/embed-player.ts | 7 |
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 { |