diff options
author | Mary <148872143+mary-ext@users.noreply.github.com> | 2024-01-19 12:25:57 +0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-18 21:25:57 -0800 |
commit | 4bd95b5ef24506edf9d6690d3f12f4afc05afca1 (patch) | |
tree | 21d8c99fa8e62e014ce8e8f338536105f21c63f9 | |
parent | 0dfe740dd3c2cbda4c7bd27513807752fad636f3 (diff) | |
download | voidsky-4bd95b5ef24506edf9d6690d3f12f4afc05afca1.tar.zst |
Set start time on YouTube embeds (#2565)
* fix: set start time on yt embeds * fix: re-encode to be on the safe side * chore: fix embed tests
-rw-r--r-- | __tests__/lib/string.test.ts | 14 | ||||
-rw-r--r-- | src/lib/strings/embed-player.ts | 6 |
2 files changed, 11 insertions, 9 deletions
diff --git a/__tests__/lib/string.test.ts b/__tests__/lib/string.test.ts index edddcb3e0..b3aa48f4a 100644 --- a/__tests__/lib/string.test.ts +++ b/__tests__/lib/string.test.ts @@ -463,44 +463,44 @@ describe('parseEmbedPlayerFromUrl', () => { type: 'youtube_video', source: 'youtube', playerUri: - 'https://www.youtube.com/embed/videoId?autoplay=1&playsinline=1', + 'https://www.youtube.com/embed/videoId?autoplay=1&playsinline=1&start=0', }, { type: 'youtube_video', source: 'youtube', playerUri: - 'https://www.youtube.com/embed/videoId?autoplay=1&playsinline=1', + 'https://www.youtube.com/embed/videoId?autoplay=1&playsinline=1&start=0', }, { type: 'youtube_video', source: 'youtube', playerUri: - 'https://www.youtube.com/embed/videoId?autoplay=1&playsinline=1', + 'https://www.youtube.com/embed/videoId?autoplay=1&playsinline=1&start=0', }, { type: 'youtube_video', source: 'youtube', playerUri: - 'https://www.youtube.com/embed/videoId?autoplay=1&playsinline=1', + 'https://www.youtube.com/embed/videoId?autoplay=1&playsinline=1&start=0', }, { type: 'youtube_video', source: 'youtube', playerUri: - 'https://www.youtube.com/embed/videoId?autoplay=1&playsinline=1', + 'https://www.youtube.com/embed/videoId?autoplay=1&playsinline=1&start=0', }, { type: 'youtube_short', source: 'youtubeShorts', hideDetails: true, playerUri: - 'https://www.youtube.com/embed/videoId?autoplay=1&playsinline=1', + 'https://www.youtube.com/embed/videoId?autoplay=1&playsinline=1&start=0', }, { type: 'youtube_video', source: 'youtube', playerUri: - 'https://www.youtube.com/embed/videoId?autoplay=1&playsinline=1', + 'https://www.youtube.com/embed/videoId?autoplay=1&playsinline=1&start=0', }, undefined, diff --git a/src/lib/strings/embed-player.ts b/src/lib/strings/embed-player.ts index 0f97eb080..3270b6f07 100644 --- a/src/lib/strings/embed-player.ts +++ b/src/lib/strings/embed-player.ts @@ -68,11 +68,12 @@ export function parseEmbedPlayerFromUrl( // youtube if (urlp.hostname === 'youtu.be') { const videoId = urlp.pathname.split('/')[1] + const seek = encodeURIComponent(urlp.searchParams.get('t') ?? 0) if (videoId) { return { type: 'youtube_video', source: 'youtube', - playerUri: `https://www.youtube.com/embed/${videoId}?autoplay=1&playsinline=1`, + playerUri: `https://www.youtube.com/embed/${videoId}?autoplay=1&playsinline=1&start=${seek}`, } } } @@ -84,13 +85,14 @@ export function parseEmbedPlayerFromUrl( const [_, page, shortVideoId] = urlp.pathname.split('/') const videoId = page === 'shorts' ? shortVideoId : (urlp.searchParams.get('v') as string) + const seek = encodeURIComponent(urlp.searchParams.get('t') ?? 0) if (videoId) { return { type: page === 'shorts' ? 'youtube_short' : 'youtube_video', source: page === 'shorts' ? 'youtubeShorts' : 'youtube', hideDetails: page === 'shorts' ? true : undefined, - playerUri: `https://www.youtube.com/embed/${videoId}?autoplay=1&playsinline=1`, + playerUri: `https://www.youtube.com/embed/${videoId}?autoplay=1&playsinline=1&start=${seek}`, } } } |