Opened 11 years ago
Closed 4 years ago
#31920 closed enhancement (worksforme)
oEmbed: Support YouTube timestamps as hashes
| Reported by: | danielbachhuber | Owned by: | peterwilsoncc |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Embeds | Version: | |
| Severity: | normal | Keywords: | needs-patch needs-unit-tests good-first-bug close |
| Cc: | Focuses: |
Description
YouTube can provide timestamps as a hash, which doesn't get properly processed by the oEmbed endpoint: https://www.youtube.com/watch?v=8A6q6eGM_Aw#t=8m30s
Converting the hash to a proper query argument produces the expected behavior: https://www.youtube.com/watch?v=8A6q6eGM_Aw&t=8m30s
Although it's a pain to maintain compatibility shims, including in core would reduce user confusion around oEmbed.
/**
* Support YouTube timestamp as hash (e.g. https://www.youtube.com/watch?v=8A6q6eGM_Aw#t=8m30s)
* by converting the hash to a query arg
*/
add_filter( 'oembed_fetch_url', function( $provider, $url, $args ) {
if ( false === stripos( $provider, 'www.youtube.com/oembed' ) || false === stripos( $url, '#t=' ) ) {
return $provider;
}
$url = str_replace( '#t=', '&t=', $url );
$provider = add_query_arg( 'url', rawurlencode( $url ), $provider );
return $provider;
}, 10, 3 );
Change History (12)
#2
@
11 years ago
Perhaps other providers support this as well. I know that Vimeo supports that hash, but I think not the query param for embeds.
This ticket was mentioned in Slack in #core by ocean90. View the logs.
10 years ago
#6
@
10 years ago
Edge cases need to be dealt with, the first to come to mind is campaign tags and a time stamp:
https://www.youtube.com/watch?v=btPJPFnesV4#utm_source=cats&utm_medium=wordpress&utm_campaign=kittens&t=3s
I'll keep on the milestone for now as I'm working through a patch with a (hopefully soon) first contributor.
#8
@
6 years ago
- Keywords good-first-bug added
- Milestone → Future Release
This would still be a really nice enhancement. Adding good-first-bug as a newer contributor should be able dive in on this one.
#9
@
5 years ago
I tested this on version 5.7.2 and the issue appears to have been fixed.
Using both the Classic Editor and the Block Editor, links with the timestamp as either a hash or a query argument, are correctly embedded, and the video is set to the correct timestamp.
Tested with:
https://www.youtube.com/watch?v=8A6q6eGM_Aw#t=8m30s
https://www.youtube.com/watch?v=8A6q6eGM_Aw&t=8m30s
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)
Agreed. Helpers are annoying, but fixing this issue is worth it.