diff --git a/server.py b/server.py
index 0253bf98b78d135849f8bb9a5fe681b7b5268601..e3c62e7dfa227babc7431c10277fc6fd8bdc104f 100755
--- a/server.py
+++ b/server.py
@@ -105,7 +105,14 @@ def index():
 
 @app.route('/videos')
 def videos():
-	return render_template('videos.html')
+	c=query("SELECT * FROM courses")
+	for i in c:
+		if i['semester'] == '':
+			i['semester'] = 'zeitlos'
+	groupedby = request.args.get('groupedby')
+	if groupedby not in ['title','semester','organizer']:
+		groupedby = 'semester'
+	return render_template('videos.html', courses=c, groupedby=groupedby)
 
 @app.route('/faq')
 def faq():
diff --git a/static/style.css b/static/style.css
index 292953c54429bbc4263aebac105e880551e6e2d0..3a3885dd0ec3ecad5a5f5256191a0d27bd243c1d 100644
--- a/static/style.css
+++ b/static/style.css
@@ -1,2 +1,3 @@
 .videopreview li:nth-child(even) { background: #f5f5f5; }
+.courses-list li:nth-child(even) { background: #fAfAfA; }
 .mejs-container { height: 80% !important; width: 100% !important; position: fixed !important; }
diff --git a/templates/macros.html b/templates/macros.html
index fe163b7e72599a07d3be4934b69f5731d9666434..689b152fd3534ed93711e18452622f6f810e24d7 100644
--- a/templates/macros.html
+++ b/templates/macros.html
@@ -1,8 +1,8 @@
 {% macro preview(lecture) %}
 
 <li class="list-group-item">
-	<div class="row">
-		<a  class="hidden-xs" href="/play?lectureid={{ lecture['id'] }}" title="{{ lecture['coursetitle'] }}">
+	<a class="hidden-xs" href="/play?lectureid={{ lecture['id'] }}" title="{{ lecture['coursetitle'] }}">
+		<div class="row">
 			<img class="col-xs-4" src="https://videoag.fsmpi.rwth-aachen.de/{{ lecture['titlefile'] }}" alt="Vorschaubild">
 			<div class="col-xs-4">
 				<span style="color: #000;"><strong>{{ lecture['short'] }}</strong></span><br>
@@ -15,36 +15,36 @@
 				<div style="color: #000;">{{ lecture['title']  }}</div>
 				<p style="font-style: italic; color: #777;">{{ lecture['comment'] }}</p>
 			</div>
-		</a>
-		<a  class="visible-xs" href="/play?lectureid={{ lecture['id'] }}" title="{{ lecture['coursetitle'] }}">
-			<div class="row">
-				<img class="col-xs-12" src="https://videoag.fsmpi.rwth-aachen.de/{{ lecture['titlefile'] }}" alt="Vorschaubild">
-			</div>
-			<div class="row">
-				<div class="col-xs-12">
-					<span style="color: #000;"><strong>{{ lecture['short'] }}</strong></span>
-					<span style="color: #000;">{{ lecture['time'] }}</span>
-				</div>
+		</div>
+	</a>
+	<a class="visible-xs" href="/play?lectureid={{ lecture['id'] }}" title="{{ lecture['coursetitle'] }}">
+		<div class="row">
+			<img class="col-xs-12" src="https://videoag.fsmpi.rwth-aachen.de/{{ lecture['titlefile'] }}" alt="Vorschaubild">
+		</div>
+		<div class="row">
+			<div class="col-xs-12">
+				<span style="color: #000;"><strong>{{ lecture['short'] }}</strong></span>
+				<span style="color: #000;">{{ lecture['time'] }}</span>
 			</div>
-			{% if lecture['speaker'] %}
-			<div class="row">
-				<div class="col-xs-12">
-					<div class="small" style="color: #000;">Gehalten von {{ lecture['speaker'] }} </div>
-				</div>
+		</div>
+		{% if lecture['speaker'] %}
+		<div class="row">
+			<div class="col-xs-12">
+				<div class="small" style="color: #000;">Gehalten von {{ lecture['speaker'] }} </div>
 			</div>
-			{% endif %}
-			<div class="row">
-				<div class="col-xs-12">
-					<div style="color: #000;">{{ lecture['title']  }}</div>
-				</div>
+		</div>
+		{% endif %}
+		<div class="row">
+			<div class="col-xs-12">
+				<div style="color: #000;">{{ lecture['title']  }}</div>
 			</div>
-			<div class="row">
-				<div class="col-xs-12">
-					<p style="font-style: italic; color: #777;">{{ lecture['comment'] }}</p>
-				</div>
+		</div>
+		<div class="row">
+			<div class="col-xs-12">
+				<p style="font-style: italic; color: #777;">{{ lecture['comment'] }}</p>
 			</div>
-		</a>
-	</div>
+		</div>
+	</a>
 </li>
 
 {% endmacro %}
@@ -56,3 +56,26 @@
 	<source type="video/mp4" src="https://videoag.fsmpi.rwth-aachen.de/{{ videos[0]['path'] }}" />
 </video>
 {% endmacro %}
+
+{% macro course_list_item(course,show_semester=False) %}
+<li class="list-group-item">
+	<div class="row">
+		{% if show_semester %}
+			<span class="col-xs-1">
+				{{ course.semester }}
+			</span>
+			<span class="col-xs-6">
+		{% else %}
+			<span class="col-xs-7">
+		{% endif %}
+			{{ course.title }}
+		</span>
+		<span class="col-xs-3">
+			{{ course.organizer }}
+		</span>
+		<span class="col-xs-2">
+			{{ course.subject }}
+		</span>
+	</div>
+</li>
+{% endmacro %}
diff --git a/templates/search.html b/templates/search.html
index e40067819e0e5fc82b090ed91be292e2fe47b726..24974e711a85f4e521bb19ab3050b3219ea0ac74 100644
--- a/templates/search.html
+++ b/templates/search.html
@@ -1,37 +1,37 @@
 {% from 'macros.html' import preview %}
 {% extends "base.html" %}
 {% block content %}
-<div class="container">
-	<div class="panel panel-default">
-		<div class="panel-heading">
-			<h1>Veranstaltungen</h1>
+<div class="container-fluid">
+	<div class="col-xs-offset-1 col-xs-10">
+		<div class="panel panel-default">
+			<div class="panel-heading">
+				<h1>Veranstaltungen</h1>
+			</div>
+				{% if courses == [] %}
+				<div class="panel-body">Nichts gefunden!</div>
+				{% else %}
+					<ul class="list-group courselist">
+						{% for course in courses %}
+							<li class="list-group-item">{{ course['title'] }}</li>
+						{% endfor %}
+					</ul>
+				{% endif %}
 		</div>
-		<div class="panel-body">
-			{% if courses == [] %}
-				Nichts gefunden!
-			{% else %}
-				<ul class="list-group courselist">
-					{% for course in courses %}
-						<li class="list-group-item">{{ course['title'] }}</li>
+		<div class="panel panel-default">
+			<div class="panel-heading">
+				<h1>Videos</h1>
+			</div>
+			<div class="panel-body">
+				{% if lectures == [] %}
+					Nichts gefunden!
+				{% else %}
+					<ul class="list-group videopreview">
+					{% for lecture in lectures %}
+						{{ preview(lecture) }}
 					{% endfor %}
-				</ul>
-			{% endif %}
-		</div>
-	</div>
-	<div class="panel panel-default">
-		<div class="panel-heading">
-			<h1>Videos</h1>
-		</div>
-		<div class="panel-body">
-			{% if lectures == [] %}
-				Nichts gefunden!
-			{% else %}
-				<ul class="list-group videopreview">
-				{% for lecture in lectures %}
-					{{ preview(lecture) }}
-				{% endfor %}
-				</ul>
-			{% endif %}
+					</ul>
+				{% endif %}
+			</div>
 		</div>
 	</div>
 </div>
diff --git a/templates/videos.html b/templates/videos.html
index 142826f34ba94540e44f66315e14446dd90cd987..3c6587b35c01488f9370ca210d22fd48427a184b 100644
--- a/templates/videos.html
+++ b/templates/videos.html
@@ -1,6 +1,40 @@
+{% from 'macros.html' import course_list_item %}
+{% set active_page = 'videos' -%}
+
 {% extends "base.html" %}
-{% set active_page = "videos" %}
 {% block content %}
 <div class="container-fluid">
+	<div class="row">
+		<div class="col-xs-12 dropdown">
+		  <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">Grupierung
+		  <span class="caret"></span></button>
+		  <ul class="dropdown-menu">
+		    <li><a href="?groupedby=semester">Semester</a></li>
+		    <li><a href="?groupedby=title">Veranstaltungen</a></li>
+		    <li><a href="?groupedby=organizer">Dozenten</a></li>
+		  </ul>
+		</div>
+	</div>
+	<div class="row"><div class="col-xs-offset-1 col-xs-10">
+		{% for g in courses|groupby(groupedby)|reverse %}
+			<div class="row panel-group">
+				<div class="col-xs-12"><div class="panel panel-default">
+					<div class="panel-heading">
+						<h1 class="panel-title">{{g.grouper}}</h1>
+					</div>
+					<ul class="courses-list list-group">
+						{% for i in g.list %}
+							{% if groupedby == semester %}
+								{{ course_list_item(i) }}
+							{% else %}
+								{{ course_list_item(i,true) }}
+							{% endif %}
+						{% endfor %}
+					</ul>
+				</div></div>
+			</div>
+		{% endfor %}
+	</div></div>
+
 </div>
 {% endblock %}