YouTube timestamp links let you share a video that starts playing at a specific time. Instead of telling someone "skip to 2:30," you can share a link that jumps there automatically.
Key Takeaways
- 1Add ?t=SECONDS to any YouTube URL (e.g., ?t=90 for 1:30)
- 2Use time format like t=1m30s for readability
- 3Works with both youtube.com and youtu.be short URLs
- 4Timestamps work in embeds too with the start parameter
- 5Right-click any video and select "Copy video URL at current time"
Adding a Timestamp
Timestamp links are incredibly useful for tutorials, podcasts, and long-form content. Instead of making viewers scrub through a video to find the relevant moment, you can send them directly there. This improves user experience and increases the likelihood they'll actually watch the content you're sharing.
Add the t parameter with the time in seconds:
https://www.youtube.com/watch?v=dQw4w9WgXcQ&t=43Or use the human-readable format with hours, minutes, and seconds:
https://www.youtube.com/watch?v=dQw4w9WgXcQ&t=1m30sBoth formats produce the same result. The seconds format is shorter, while the readable format is easier to understand at a glance when editing URLs manually.
Time Format Options
YouTube supports several time format variations. Choose the format that best fits your workflow. The table below shows all valid options with examples.
| Format | Example | Result |
|---|---|---|
| Seconds only | t=90 | Starts at 1:30 |
| Minutes and seconds | t=1m30s | Starts at 1:30 |
| Hours, minutes, seconds | t=1h2m30s | Starts at 1:02:30 |
| Hours and minutes | t=1h30m | Starts at 1:30:00 |
| Just minutes | t=5m | Starts at 5:00 |
Pro Tip
Seconds-only format (t=90) is more reliable across all platforms. The readable format (t=1m30s) is great for sharing but some embed players only support seconds.
Timestamps work across all YouTube URL formats. Let's look at how to add them to standard URLs, short URLs, and embed codes.
YouTube URL Formats
YouTube has several URL formats for different purposes. The timestamp parameter syntax varies slightly between them, so pay attention to the differences below.
Standard URL
https://www.youtube.com/watch?v=VIDEO_ID&t=90Short URL (youtu.be)
https://youtu.be/VIDEO_ID?t=90Short URLs are great for social media and messaging where character count matters. They work identically to full URLs.
Embed URL
For embeds, use start instead of t, and it must be in seconds:
https://www.youtube.com/embed/VIDEO_ID?start=90<iframe
width="560"
height="315"
src="https://www.youtube.com/embed/dQw4w9WgXcQ?start=90"
frameborder="0"
allowfullscreen>
</iframe>This embed code starts the video at 90 seconds. Note that embeds use start instead of t, and the value must be in seconds only. The human-readable format (1m30s) does not work in embed URLs.
Quick Method: Right-Click
You don't need to calculate timestamps manually. YouTube provides a built-in feature that generates timestamp links for you. This is the fastest way to share a specific moment.
The easiest way to get a timestamp link:
- Pause the video at the moment you want to share
- Right-click on the video player
- Select "Copy video URL at current time"
- Paste the link - it includes the timestamp automatically
Now let's look at how to generate timestamp links programmatically for dynamic content like video chapters or searchable transcripts.
Building Links Programmatically
When building video-centric applications, you'll need to generate timestamp links from data. These functions handle the URL construction and time format conversion.
function createYouTubeTimestampLink(videoId, seconds) {
const url = new URL('https://www.youtube.com/watch');
url.searchParams.set('v', videoId);
url.searchParams.set('t', seconds.toString());
return url.toString();
}
// Convert time string to seconds
function timeToSeconds(time) {
const parts = time.match(/(\d+)h?|(\d+)m|(\d+)s/g) || [];
let seconds = 0;
parts.forEach(part => {
if (part.includes('h')) seconds += parseInt(part) * 3600;
else if (part.includes('m')) seconds += parseInt(part) * 60;
else if (part.includes('s')) seconds += parseInt(part);
else seconds += parseInt(part); // Just a number = seconds
});
return seconds;
}
// Usage
const link = createYouTubeTimestampLink('dQw4w9WgXcQ', 90);
// "https://www.youtube.com/watch?v=dQw4w9WgXcQ&t=90"
const seconds = timeToSeconds('1m30s'); // 90The createYouTubeTimestampLink function builds the URL using the standard API. The timeToSeconds helper converts human-readable time strings to seconds, useful when timestamps come from user input or video chapter data.
Extracting Timestamps from URLs
Sometimes you need to extract the timestamp from an existing YouTube URL, for example, to display the start time or adjust it programmatically. This function handles both the seconds and human-readable formats.
function extractYouTubeTimestamp(url) {
try {
const urlObj = new URL(url);
const timestamp = urlObj.searchParams.get('t') ||
urlObj.searchParams.get('start');
if (!timestamp) return 0;
// If it's just a number, it's seconds
if (/^\d+$/.test(timestamp)) {
return parseInt(timestamp);
}
// Parse 1h2m3s format
let seconds = 0;
const hours = timestamp.match(/(\d+)h/);
const minutes = timestamp.match(/(\d+)m/);
const secs = timestamp.match(/(\d+)s/);
if (hours) seconds += parseInt(hours[1]) * 3600;
if (minutes) seconds += parseInt(minutes[1]) * 60;
if (secs) seconds += parseInt(secs[1]);
return seconds;
} catch {
return 0;
}
}
// Usage
extractYouTubeTimestamp('https://youtube.com/watch?v=abc&t=1m30s'); // 90
extractYouTubeTimestamp('https://youtu.be/abc?t=90'); // 90This function returns the timestamp in seconds regardless of the input format. It handles both t (regular URLs) and start (embed URLs) parameters. The regex parsing accommodates various time format combinations.
Embed with More Options
YouTube embeds support additional parameters beyond just the start time. You can control autoplay, looping, and even specify an end time to play a specific segment.
<iframe
width="560"
height="315"
src="https://www.youtube.com/embed/VIDEO_ID?start=90&end=120&autoplay=1&mute=1"
frameborder="0"
allow="autoplay; encrypted-media"
allowfullscreen>
</iframe>
<!-- Parameters:
start=90 - Start at 90 seconds
end=120 - Stop at 120 seconds (plays 30 seconds)
autoplay=1 - Auto-play when loaded
mute=1 - Muted (required for autoplay in most browsers)
loop=1 - Loop the video
controls=0 - Hide player controls
-->The start and end parameters together let you embed a specific clip from a longer video. This is useful for tutorials where you want to show just one step, or for embedding a highlight from a longer presentation.
Common Issues
If your timestamp link isn't working as expected, check this troubleshooting table. Most issues come from using the wrong parameter name or time format for the URL type.
| Issue | Cause | Solution |
|---|---|---|
| Timestamp ignored | Using t= in embed URL | Use start= for embeds (seconds only) |
| Wrong time format | Using colons like t=1:30 | Use t=90 or t=1m30s |
| Link doesn't work | Extra characters in URL | Ensure proper URL encoding |
| Mobile ignores timestamp | App behavior varies | Timestamps work best in browsers |
With these techniques, you can create precise timestamp links for any YouTube video sharing scenario.
Try the URL Builder
Use our YouTube Video URL template to build timestamp links interactively.