YouTube title
This commit is contained in:
		
							
								
								
									
										2
									
								
								dist/plyr.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/plyr.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								dist/plyr.js.map
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/plyr.js.map
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @ -23,22 +23,6 @@ const youtube = { | |||||||
|         // Set ID |         // Set ID | ||||||
|         this.media.setAttribute('id', utils.generateId(this.type)); |         this.media.setAttribute('id', utils.generateId(this.type)); | ||||||
|  |  | ||||||
|         // Get the media title via Google API |  | ||||||
|         const key = this.config.keys.google; |  | ||||||
|         if (utils.is.string(key) && !utils.is.empty(key)) { |  | ||||||
|             const url = `https://www.googleapis.com/youtube/v3/videos?id=${videoId}&key=${key}&fields=items(snippet(title))&part=snippet`; |  | ||||||
|  |  | ||||||
|             fetch(url) |  | ||||||
|                 .then(response => (response.ok ? response.json() : null)) |  | ||||||
|                 .then(result => { |  | ||||||
|                     if (result !== null && utils.is.object(result)) { |  | ||||||
|                         this.config.title = result.items[0].snippet.title; |  | ||||||
|                         ui.setTitle.call(this); |  | ||||||
|                     } |  | ||||||
|                 }) |  | ||||||
|                 .catch(() => {}); |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         // Setup API |         // Setup API | ||||||
|         if (utils.is.object(window.YT)) { |         if (utils.is.object(window.YT)) { | ||||||
|             youtube.ready.call(this, videoId); |             youtube.ready.call(this, videoId); | ||||||
| @ -63,6 +47,39 @@ const youtube = { | |||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
|  |  | ||||||
|  |     // Get the media title | ||||||
|  |     getTitle() { | ||||||
|  |         // Try via undocumented API method first | ||||||
|  |         // This method disappears now and then though... | ||||||
|  |         // https://github.com/sampotts/plyr/issues/709 | ||||||
|  |         if (utils.is.function(this.embed.getVideoData)) { | ||||||
|  |             const { title } = this.embed.getVideoData(); | ||||||
|  |  | ||||||
|  |             if (utils.is.empty(title)) { | ||||||
|  |                 this.config.title = title; | ||||||
|  |                 ui.setTitle.call(this); | ||||||
|  |                 return; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         // Or via Google API | ||||||
|  |         const key = this.config.keys.google; | ||||||
|  |         const videoId = utils.parseYouTubeId(this.embedId); | ||||||
|  |         if (utils.is.string(key) && !utils.is.empty(key)) { | ||||||
|  |             const url = `https://www.googleapis.com/youtube/v3/videos?id=${videoId}&key=${key}&fields=items(snippet(title))&part=snippet`; | ||||||
|  |  | ||||||
|  |             fetch(url) | ||||||
|  |                 .then(response => (response.ok ? response.json() : null)) | ||||||
|  |                 .then(result => { | ||||||
|  |                     if (result !== null && utils.is.object(result)) { | ||||||
|  |                         this.config.title = result.items[0].snippet.title; | ||||||
|  |                         ui.setTitle.call(this); | ||||||
|  |                     } | ||||||
|  |                 }) | ||||||
|  |                 .catch(() => {}); | ||||||
|  |         } | ||||||
|  |     }, | ||||||
|  |  | ||||||
|     // Set aspect ratio |     // Set aspect ratio | ||||||
|     setAspectRatio() { |     setAspectRatio() { | ||||||
|         const ratio = this.config.ratio.split(':'); |         const ratio = this.config.ratio.split(':'); | ||||||
| @ -161,6 +178,9 @@ const youtube = { | |||||||
|                     // Get the instance |                     // Get the instance | ||||||
|                     const instance = event.target; |                     const instance = event.target; | ||||||
|  |  | ||||||
|  |                     // Get the title | ||||||
|  |                     youtube.getTitle.call(player); | ||||||
|  |  | ||||||
|                     // Create a faux HTML5 API using the YouTube API |                     // Create a faux HTML5 API using the YouTube API | ||||||
|                     player.media.play = () => { |                     player.media.play = () => { | ||||||
|                         instance.playVideo(); |                         instance.playVideo(); | ||||||
| @ -259,11 +279,6 @@ const youtube = { | |||||||
|                         controls.setSpeedMenu.call(player, instance.getAvailablePlaybackRates()); |                         controls.setSpeedMenu.call(player, instance.getAvailablePlaybackRates()); | ||||||
|                     } |                     } | ||||||
|  |  | ||||||
|                     // Set title |  | ||||||
|                     if (utils.is.function(instance.getVideoData)) { |  | ||||||
|                         player.config.title = instance.getVideoData().title; |  | ||||||
|                     } |  | ||||||
|  |  | ||||||
|                     // Set the tabindex to avoid focus entering iframe |                     // Set the tabindex to avoid focus entering iframe | ||||||
|                     if (player.supported.ui) { |                     if (player.supported.ui) { | ||||||
|                         player.media.setAttribute('tabindex', -1); |                         player.media.setAttribute('tabindex', -1); | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user