Opened 10 years ago
Closed 3 years ago
#31920 closed enhancement (worksforme)
oEmbed: Support YouTube timestamps as hashes
Reported by: | danielbachhuber | Owned by: | peterwilsoncc |
---|---|---|---|
Milestone: | Priority: | normal | |
Severity: | normal | Version: | |
Component: | Embeds | Keywords: | needs-patch needs-unit-tests good-first-bug close |
Focuses: | Cc: |
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
@
9 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.
#4
@
8 years ago
- Keywords needs-unit-tests added
- Owner set to peterwilsoncc
- Status changed from new to accepted
This ticket was mentioned in Slack in #core by ocean90. View the logs.
8 years ago
#6
@
8 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.
#7
@
8 years ago
- Milestone changed from 4.6 to Future Release
- Status changed from accepted to assigned
#8
@
4 years ago
- Keywords good-first-bug added
- Milestone set to 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
@
3 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
#10
@
3 years ago
- Keywords close added
these are working as expected for me as well, marking as a close
candidate
#12
@
3 years ago
- Milestone Future Release deleted
- Resolution set to worksforme
- Status changed from assigned to closed
Thanks for retesting folks.
It looks like YouTube have fixed this with their embed code so I will close the ticket. worksforme
seems the closest fit even though it didn't work at the time of the report.
Agreed. Helpers are annoying, but fixing this issue is worth it.