diff --git a/bob/pad/face/utils/__init__.py b/bob/pad/face/utils/__init__.py
index 7e923999daa39177fae66025ea3b01460f8dc2d0..1b0b03c6e033c25748fdf0be22d1fc91d143c789 100644
--- a/bob/pad/face/utils/__init__.py
+++ b/bob/pad/face/utils/__init__.py
@@ -1,6 +1,6 @@
 from .load_utils import (
     frames, number_of_frames, yield_frames, yield_faces, scale_face, blocks,
-    bbx_cropper, min_face_size_normalizer)
+    bbx_cropper, min_face_size_normalizer, the_giant_video_loader)
 
 # gets sphinx autodoc done right - don't remove it
 __all__ = [_ for _ in dir() if not _.startswith('_')]
diff --git a/bob/pad/face/utils/load_utils.py b/bob/pad/face/utils/load_utils.py
index b1800fd97dc2461502edd3c159d5947b8700e3b1..30566afc2f68440c4d2bd0e886d4da673c2a7a3b 100644
--- a/bob/pad/face/utils/load_utils.py
+++ b/bob/pad/face/utils/load_utils.py
@@ -5,7 +5,6 @@ from bob.ip.base import scale, block, block_output_shape
 from bob.ip.facedetect import bounding_box_from_annotation
 from functools import partial
 import numpy
-import six
 
 
 def frames(path):
@@ -191,3 +190,18 @@ def blocks(data, block_size, block_overlap=(0, 0)):
     else:
         raise ValueError("Unknown data dimension {}".format(data.ndim))
     return output
+
+
+def the_giant_video_loader(paddb, padfile,
+                           region='whole', scaling_factor=None, cropper=None,
+                           normalizer=None):
+    generator = None
+    if region == 'whole':
+        generator = yield_frames(paddb, padfile)
+    elif region == 'crop':
+        generator = yield_faces(
+            paddb, padfile, cropper=cropper, normalizer=normalizer)
+    if scaling_factor is not None:
+        generator = (scale(frame, scaling_factor)
+                     for frame in generator)
+    return generator