diff --git a/sorter.py b/sorter.py
index a4d90117f19928c9fcc65d5637f1ac722f299daa..31ae38a3095a7f452bd5ccc371a73e81e1b1e114 100644
--- a/sorter.py
+++ b/sorter.py
@@ -48,6 +48,10 @@ def insert_video(lectureid, dbfilepath, fileformatid, hash="", filesize=-1):
 	query('INSERT INTO sortlog (lecture_id,video_id,path,`when`) VALUES (?,?,?,?)', lectureid, video_id, dbfilepath, datetime.now())
 	schedule_thumbnail(lectureid)
 	schedule_job('probe', {'path': dbfilepath, 'lecture_id': lectureid, 'video_id': video_id, 'import-chapters': True})
+	video = query('SELECT videos.*, "format" AS sep, formats.* FROM videos JOIN formats ON formats.id = videos.video_format WHERE videos.id = ?', video_id)[0]
+	lecture = query('SELECT * FROM lectures WHERE id = ?', lectureid)[0]
+	course = query('SELECT * FROM courses WHERE id = ?', lecture['course_id'])[0]
+	notify_mods('new_video', course['id'], course=course, lecture=lecture, video=video)
 
 @app.route('/internal/jobs/add/thumbnail', methods=['GET', 'POST'])
 @mod_required
@@ -82,6 +86,10 @@ def insert_transcoded_video(jobid, jobtype, data, state, status):
 		datetime.now(), datetime.now(), datetime.now(), -1, status['hash'],
 		status['filesize'], data['source_id'])
 	schedule_thumbnail(data['lecture_id'])
+	video = query('SELECT videos.*, "format" AS sep, formats.* FROM videos JOIN formats ON formats.id = videos.video_format WHERE videos.id = ?', video_id)[0]
+	lecture = query('SELECT * FROM lectures WHERE id = ?', data['lecture_id'])[0]
+	course = query('SELECT * FROM courses WHERE id = ?', lecture['course_id'])[0]
+	notify_mods('new_video', course['id'], course=course, lecture=lecture, video=video)
 
 def sort_file(filename, course=None, lectures=None):
 	# filenames: <handle>-<sorter>-<format>.mp4
diff --git a/templates/mails/new_video.body b/templates/mails/new_video.body
new file mode 100644
index 0000000000000000000000000000000000000000..fdeca96501acec82d627986286dee75ed4f86e10
--- /dev/null
+++ b/templates/mails/new_video.body
@@ -0,0 +1,6 @@
+Für den Termin {% if lecture.title %}"{{lecture.title}}" {% endif %}vom {{ lecture.time|fulldate }} der Veranstaltung "{{ course.title }}" ({{ course.semester|semester }}) wurde ein Video im Format "{{ video.format.description }}" {% if video.source %}fertig kodiert{% else %}hochgeladen{% endif %}.
+
+{% if not video.visible %}
+Video freischalten: {{ url_for('course', handle=course.handle, _external=True)}}#lecture-{{lecture.id}}
+{% endif %}
+Link zum Video: {{ url_for('lecture', id=lecture.id, course=course.handle, _external=True) }}
diff --git a/templates/mails/new_video.subject b/templates/mails/new_video.subject
new file mode 100644
index 0000000000000000000000000000000000000000..7d2cfaef301e460f8d22e80fc37cacd4a373dc62
--- /dev/null
+++ b/templates/mails/new_video.subject
@@ -0,0 +1 @@
+Neues Video verfügbar: {{ video.path.split('/')[-1] }}