diff --git src/wp-admin/js/widgets/media-widgets.js src/wp-admin/js/widgets/media-widgets.js
index cd03b09633..1408b35d01 100644
--- src/wp-admin/js/widgets/media-widgets.js
+++ src/wp-admin/js/widgets/media-widgets.js
@@ -142,9 +142,6 @@ wp.mediaWidgets = ( function( $ ) {
 					/**
 					 * Fetch media.
 					 *
-					 * This is a TEMPORARY measure until the WP API supports an oEmbed proxy endpoint. See #40450.
-					 *
-					 * @see https://core.trac.wordpress.org/ticket/40450
 					 * @returns {void}
 					 */
 					fetch: function() {
diff --git src/wp-includes/js/media-views.js src/wp-includes/js/media-views.js
index 1bdc6e6575..f8dc498484 100644
--- src/wp-includes/js/media-views.js
+++ src/wp-includes/js/media-views.js
@@ -4605,6 +4605,13 @@ EmbedLink = wp.media.view.Settings.extend({
 
 	initialize: function() {
 		this.listenTo( this.model, 'change:url', this.updateoEmbed );
+
+		this.listenTo( this.model, 'change:url', function() {
+			var trimmedUrl = $.trim( this.model.get( 'url' ) );
+			if ( trimmedUrl !== this.model.get( 'url' ) ) {
+				this.model.set( 'url', trimmedUrl );
+			}
+		});
 	},
 
 	updateoEmbed: _.debounce( function() {
diff --git src/wp-includes/js/media/views/embed/link.js src/wp-includes/js/media/views/embed/link.js
index 1af96cfa5d..69df05aaa8 100644
--- src/wp-includes/js/media/views/embed/link.js
+++ src/wp-includes/js/media/views/embed/link.js
@@ -16,6 +16,13 @@ EmbedLink = wp.media.view.Settings.extend({
 
 	initialize: function() {
 		this.listenTo( this.model, 'change:url', this.updateoEmbed );
+
+		this.listenTo( this.model, 'change:url', function() {
+			var trimmedUrl = $.trim( this.model.get( 'url' ) );
+			if ( trimmedUrl !== this.model.get( 'url' ) ) {
+				this.model.set( 'url', trimmedUrl );
+			}
+		});
 	},
 
 	updateoEmbed: _.debounce( function() {
