diff --git a/filter.php b/filter.php
index 8d66461ad060c4cc183fb2ad2fd7bc61905f77a2..6e6a5fffdbb9be513f256c70aa14535997a5f618 100644
--- a/filter.php
+++ b/filter.php
@@ -39,6 +39,8 @@ require_once($CFG->libdir . '/oauthlib.php');
  */
 class filter_opencast extends moodle_text_filter {
 
+    private static $loginrendered = false;
+
     public function filter($text, array $options = array()) {
         global $PAGE;
 
@@ -55,10 +57,11 @@ class filter_opencast extends moodle_text_filter {
 
             // Login if user is not logged in yet.
             $loggedin = true;
-            if (!isset($_COOKIE['JSESSIONID'])) {
+            if (!isset($_COOKIE['JSESSIONID']) && !self::$loginrendered) {
                 // Login and set cookie.
                 filter_opencast_login();
                 $loggedin = false;
+                self::$loginrendered = true;
             }
 
             $video = false;