diff --git a/media/player/html5audio/classes/privacy/provider.php b/media/player/html5audio/classes/privacy/provider.php
new file mode 100644
index 00000000000..0efbb798f59
--- /dev/null
+++ b/media/player/html5audio/classes/privacy/provider.php
@@ -0,0 +1,46 @@
+.
+
+/**
+ * Privacy provider implementation for media_html5audio.
+ *
+ * @package media_html5audio
+ * @copyright 2018 Mihail Geshoski
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+namespace media_html5audio\privacy;
+
+defined('MOODLE_INTERNAL') || die();
+
+/**
+ * Privacy provider implementation for media_html5audio.
+ *
+ * @copyright 2018 Mihail Geshoski
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+class provider implements \core_privacy\local\metadata\null_provider {
+
+ /**
+ * Get the language string identifier with the component's language
+ * file to explain why this plugin stores no data.
+ *
+ * @return string
+ */
+ public static function get_reason() : string {
+ return 'privacy:metadata';
+ }
+}
diff --git a/media/player/html5audio/lang/en/media_html5audio.php b/media/player/html5audio/lang/en/media_html5audio.php
index 2c74e603df3..846eaa05cea 100644
--- a/media/player/html5audio/lang/en/media_html5audio.php
+++ b/media/player/html5audio/lang/en/media_html5audio.php
@@ -24,3 +24,4 @@
$string['pluginname'] = 'HTML5 audio';
$string['pluginname_help'] = 'Audio files played by the browser\'s native audio player. (Format support depends on the browser.)';
+$string['privacy:metadata'] = 'The HTML5 audio media plugin does not store any personal data.';
diff --git a/media/player/html5video/classes/privacy/provider.php b/media/player/html5video/classes/privacy/provider.php
new file mode 100644
index 00000000000..8988579feba
--- /dev/null
+++ b/media/player/html5video/classes/privacy/provider.php
@@ -0,0 +1,46 @@
+.
+
+/**
+ * Privacy provider implementation for media_html5video.
+ *
+ * @package media_html5video
+ * @copyright 2018 Mihail Geshoski
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+namespace media_html5video\privacy;
+
+defined('MOODLE_INTERNAL') || die();
+
+/**
+ * Privacy provider implementation for media_html5video.
+ *
+ * @copyright 2018 Mihail Geshoski
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+class provider implements \core_privacy\local\metadata\null_provider {
+
+ /**
+ * Get the language string identifier with the component's language
+ * file to explain why this plugin stores no data.
+ *
+ * @return string
+ */
+ public static function get_reason() : string {
+ return 'privacy:metadata';
+ }
+}
diff --git a/media/player/html5video/lang/en/media_html5video.php b/media/player/html5video/lang/en/media_html5video.php
index 43a5aaeca94..8287e35efb3 100644
--- a/media/player/html5video/lang/en/media_html5video.php
+++ b/media/player/html5video/lang/en/media_html5video.php
@@ -24,3 +24,4 @@
$string['pluginname'] = 'HTML5 video';
$string['pluginname_help'] = 'Video files played by the browser\'s native audio player. (Format support depends on the browser.)';
+$string['privacy:metadata'] = 'The HTML5 video media plugin does not store any personal data.';
diff --git a/media/player/swf/classes/privacy/provider.php b/media/player/swf/classes/privacy/provider.php
new file mode 100644
index 00000000000..579b3298609
--- /dev/null
+++ b/media/player/swf/classes/privacy/provider.php
@@ -0,0 +1,46 @@
+.
+
+/**
+ * Privacy provider implementation for media_swf.
+ *
+ * @package media_swf
+ * @copyright 2018 Mihail Geshoski
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+namespace media_swf\privacy;
+
+defined('MOODLE_INTERNAL') || die();
+
+/**
+ * Privacy provider implementation for media_swf.
+ *
+ * @copyright 2018 Mihail Geshoski
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+class provider implements \core_privacy\local\metadata\null_provider {
+
+ /**
+ * Get the language string identifier with the component's language
+ * file to explain why this plugin stores no data.
+ *
+ * @return string
+ */
+ public static function get_reason() : string {
+ return 'privacy:metadata';
+ }
+}
diff --git a/media/player/swf/lang/en/media_swf.php b/media/player/swf/lang/en/media_swf.php
index 0f9417c53ab..c5862a0c046 100644
--- a/media/player/swf/lang/en/media_swf.php
+++ b/media/player/swf/lang/en/media_swf.php
@@ -24,3 +24,4 @@
$string['pluginname'] = 'Flash animation';
$string['pluginname_help'] = 'For security reasons this format is only embedded within trusted text.';
+$string['privacy:metadata'] = 'The Flash animation media plugin does not store any personal data.';
diff --git a/media/player/videojs/classes/privacy/provider.php b/media/player/videojs/classes/privacy/provider.php
new file mode 100644
index 00000000000..6b429183656
--- /dev/null
+++ b/media/player/videojs/classes/privacy/provider.php
@@ -0,0 +1,46 @@
+.
+
+/**
+ * Privacy provider implementation for media_videojs.
+ *
+ * @package media_videojs
+ * @copyright 2018 Mihail Geshoski
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+namespace media_videojs\privacy;
+
+defined('MOODLE_INTERNAL') || die();
+
+/**
+ * Privacy provider implementation for media_videojs.
+ *
+ * @copyright 2018 Mihail Geshoski
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+class provider implements \core_privacy\local\metadata\null_provider {
+
+ /**
+ * Get the language string identifier with the component's language
+ * file to explain why this plugin stores no data.
+ *
+ * @return string
+ */
+ public static function get_reason() : string {
+ return 'privacy:metadata';
+ }
+}
diff --git a/media/player/videojs/lang/en/media_videojs.php b/media/player/videojs/lang/en/media_videojs.php
index a8c10cde21e..42eca593215 100644
--- a/media/player/videojs/lang/en/media_videojs.php
+++ b/media/player/videojs/lang/en/media_videojs.php
@@ -37,6 +37,7 @@ $string['configuseflash'] = 'Use Flash player if video format is not natively su
$string['limitsize'] = 'Limit size';
$string['pluginname'] = 'VideoJS player';
$string['pluginname_help'] = 'A JavaScript wrapper for video files played by the browser\'s native video player with a Flash player fallback. (Format support depends on the browser.)';
+$string['privacy:metadata'] = 'The VideoJS player media plugin does not store any personal data.';
$string['rtmp'] = 'RTMP streams';
$string['videoextensions'] = 'Video file extensions';
$string['useflash'] = 'Use Flash fallback';
diff --git a/media/player/vimeo/classes/privacy/provider.php b/media/player/vimeo/classes/privacy/provider.php
new file mode 100644
index 00000000000..6c4be033050
--- /dev/null
+++ b/media/player/vimeo/classes/privacy/provider.php
@@ -0,0 +1,46 @@
+.
+
+/**
+ * Privacy provider implementation for media_vimeo.
+ *
+ * @package media_vimeo
+ * @copyright 2018 Mihail Geshoski
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+namespace media_vimeo\privacy;
+
+defined('MOODLE_INTERNAL') || die();
+
+/**
+ * Privacy provider implementation for media_vimeo.
+ *
+ * @copyright 2018 Mihail Geshoski
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+class provider implements \core_privacy\local\metadata\null_provider {
+
+ /**
+ * Get the language string identifier with the component's language
+ * file to explain why this plugin stores no data.
+ *
+ * @return string
+ */
+ public static function get_reason() : string {
+ return 'privacy:metadata';
+ }
+}
diff --git a/media/player/vimeo/lang/en/media_vimeo.php b/media/player/vimeo/lang/en/media_vimeo.php
index 05386cd7432..90777a56954 100644
--- a/media/player/vimeo/lang/en/media_vimeo.php
+++ b/media/player/vimeo/lang/en/media_vimeo.php
@@ -24,3 +24,4 @@
$string['pluginname'] = 'Vimeo';
$string['pluginname_help'] = 'The video-sharing website vimeo.com.';
+$string['privacy:metadata'] = 'The Vimeo media plugin does not store any personal data.';
diff --git a/media/player/youtube/classes/privacy/provider.php b/media/player/youtube/classes/privacy/provider.php
new file mode 100644
index 00000000000..3222c3945c2
--- /dev/null
+++ b/media/player/youtube/classes/privacy/provider.php
@@ -0,0 +1,46 @@
+.
+
+/**
+ * Privacy provider implementation for media_youtube.
+ *
+ * @package media_youtube
+ * @copyright 2018 Mihail Geshoski
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+namespace media_youtube\privacy;
+
+defined('MOODLE_INTERNAL') || die();
+
+/**
+ * Privacy provider implementation for media_youtube.
+ *
+ * @copyright 2018 Mihail Geshoski
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+class provider implements \core_privacy\local\metadata\null_provider {
+
+ /**
+ * Get the language string identifier with the component's language
+ * file to explain why this plugin stores no data.
+ *
+ * @return string
+ */
+ public static function get_reason() : string {
+ return 'privacy:metadata';
+ }
+}
diff --git a/media/player/youtube/lang/en/media_youtube.php b/media/player/youtube/lang/en/media_youtube.php
index 00f69cefd5f..486292ce4bf 100644
--- a/media/player/youtube/lang/en/media_youtube.php
+++ b/media/player/youtube/lang/en/media_youtube.php
@@ -24,5 +24,6 @@
$string['pluginname'] = 'YouTube';
$string['pluginname_help'] = 'The video-sharing website youtube.com. Video and playlist links are supported.';
+$string['privacy:metadata'] = 'The Youtube media plugin does not store any personal data.';
$string['supportsvideo'] = 'YouTube videos';
$string['supportsplaylist'] = 'YouTube playlists';