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..7bea996fcc 100644
--- src/wp-includes/js/media-views.js
+++ src/wp-includes/js/media-views.js
@@ -4656,6 +4656,24 @@ EmbedLink = wp.media.view.Settings.extend({
 			.fail( this.renderFail );
 	},
 
+	ready: function() {
+		var urlField, handleEvent;
+		urlField = $( '#embed-url-field' )
+		handleEvent = function( event ) {
+			var originalValue, trimmedValue;
+			originalValue = urlField.val();
+			trimmedValue = $.trim( originalValue );
+			if ( originalValue !== trimmedValue ) {
+				urlField.val( trimmedValue );
+				if ( 'input' === event.name ) {
+					urlField.trigger( 'change' );
+				}
+			}
+		};
+		urlField.on( 'input keyup', handleEvent );
+		wp.media.view.Settings.prototype.ready.apply( this, arguments );
+	},
+
 	renderFail: function ( response, status ) {
 		if ( 'abort' === status ) {
 			return;
diff --git src/wp-includes/js/media/views/embed/link.js src/wp-includes/js/media/views/embed/link.js
index 1af96cfa5d..ca4aa0143d 100644
--- src/wp-includes/js/media/views/embed/link.js
+++ src/wp-includes/js/media/views/embed/link.js
@@ -67,6 +67,24 @@ EmbedLink = wp.media.view.Settings.extend({
 			.fail( this.renderFail );
 	},
 
+	ready: function() {
+		var urlField, handleEvent;
+		urlField = $( '#embed-url-field' )
+		handleEvent = function( event ) {
+			var originalValue, trimmedValue;
+			originalValue = urlField.val();
+			trimmedValue = $.trim( originalValue );
+			if ( originalValue !== trimmedValue ) {
+				urlField.val( trimmedValue );
+				if ( 'input' === event.name ) {
+					urlField.trigger( 'change' );
+				}
+			}
+		};
+		urlField.on( 'input keyup', handleEvent );
+		wp.media.view.Settings.prototype.ready.apply( this, arguments );
+	},
+
 	renderFail: function ( response, status ) {
 		if ( 'abort' === status ) {
 			return;
