diff --git a/src/js/plugins.js b/src/js/plugins.js
index 7e8a15a..e7421f8 100644
--- a/src/js/plugins.js
+++ b/src/js/plugins.js
@@ -230,6 +230,46 @@ plugins.factory('userPlugins', function() {
return element.prop('outerHTML');
}
});
+
+ /*
+ * Twitch Embedded Player
+ *
+ * See: https://dev.twitch.tv/docs/embed/video-and-clips/#non-interactive-iframes-for-clips
+ */
+
+ var twitchPlugin = new UrlPlugin('Twitch video', function(url) {
+ var regex = /(?:https?:\/\/)?clips\.twitch\.tv\/([^\?\&\/\s]+)/i,
+ match = url.match(regex);
+
+ if (match){
+ var clipId = match[1];
+ var embedurl = "https://clips.twitch.tv/embed?clip=" + clipId + "&parent=" + window.location.hostname;
+
+ var element = angular.element('')
+ .attr('src', embedurl)
+ .attr('width', '560')
+ .attr('height', '315')
+ .attr('allowfullscreen', 'true');
+ return element.prop('outerHTML');
+ }
+
+ var regex = /(?:https?:(?:\/\/www\.)?)?twitch\.tv\/(?:videos\/(\d+)|(\w+))/i,
+ match = url.match(regex);
+ if (match) {
+ var mediaType = "video";
+ if(match[1] === undefined) {
+ mediaType = "channel";
+ }
+ var mediaId = match[1] === undefined ? match[2] : match[1];
+ var embedurl = "https://player.twitch.tv/?" + mediaType + "=" + mediaId + "&parent=" + window.location.hostname + "&autoplay=false&muted=true";
+ var element = angular.element('')
+ .attr('src', embedurl)
+ .attr('width', '560')
+ .attr('height', '315')
+ .attr('allowfullscreen', 'true');
+ return element.prop('outerHTML');
+ }
+ });
/*
* Dailymotion Embedded Player
@@ -590,7 +630,7 @@ plugins.factory('userPlugins', function() {
});
return {
- plugins: [youtubePlugin, dailymotionPlugin, allocinePlugin, imagePlugin, videoPlugin, audioPlugin, spotifyPlugin, cloudmusicPlugin, googlemapPlugin, asciinemaPlugin, yrPlugin, gistPlugin, pastebinPlugin, giphyPlugin, tweetPlugin, streamablePlugin, tikTokPlugin]
+ plugins: [youtubePlugin, twitchPlugin, dailymotionPlugin, allocinePlugin, imagePlugin, videoPlugin, audioPlugin, spotifyPlugin, cloudmusicPlugin, googlemapPlugin, asciinemaPlugin, yrPlugin, gistPlugin, pastebinPlugin, giphyPlugin, tweetPlugin, streamablePlugin, tikTokPlugin]
};