addExternalPlugins(plugins) {
      const loadExternalPluginsFirst = typeof plugins.loadExternalPluginsFirst === 'boolean'
        ? plugins.loadExternalPluginsFirst
        : true
      const loadExternalPlaybacksFirst = typeof plugins.loadExternalPlaybacksFirst === 'boolean'
        ? plugins.loadExternalPlaybacksFirst
        : true

      plugins = this.groupPluginsByType(plugins)

      if (plugins.playback) {
        const playbacks = plugins.playback.filter((playback) => (Loader.checkVersionSupport(playback), true))
        this.playbackPlugins = loadExternalPlaybacksFirst
          ? this.removeDups(playbacks.concat(this.playbackPlugins))
          : this.removeDups(this.playbackPlugins.concat(playbacks), true)
      }

      if (plugins.container) {
        const containerPlugins = plugins.container.filter((plugin) => (Loader.checkVersionSupport(plugin), true))
        this.containerPlugins = loadExternalPluginsFirst
          ? this.removeDups(containerPlugins.concat(this.containerPlugins))
          : this.removeDups(this.containerPlugins.concat(containerPlugins), true)
      }

      if (plugins.core) {
        const corePlugins = plugins.core.filter((plugin) => (Loader.checkVersionSupport(plugin), true))
        this.corePlugins = loadExternalPluginsFirst
          ? this.removeDups(corePlugins.concat(this.corePlugins))
          : this.removeDups(this.corePlugins.concat(corePlugins), true)
      }
    }
adds all the external plugins that were passed through `options.plugins`
@method addExternalPlugins
@private
@param {Object} plugins the config object with all plugins