diff --git a/lib/PiTube/Controller/Stream.pm b/lib/PiTube/Controller/Stream.pm
index b9f7954dcf80bf0b65c02a13613901b39390b238..17e07e27671527fe7a23f7d733b810c76caad548 100644
--- a/lib/PiTube/Controller/Stream.pm
+++ b/lib/PiTube/Controller/Stream.pm
@@ -8,6 +8,7 @@ use constant CONTENT_TYPE => {
 };
 
 use constant CONTROL_URL => '%s/control/record/%s?app=stream&name=%s&rec=%s';
+use constant HLS_URL     => '/hls/%s.m3u8';
 
 sub list {
     my $c = shift;
@@ -53,7 +54,6 @@ sub list {
     $c->render( json => \@streams );
 }
 
-
 sub player {
     my $c = shift;
 
@@ -82,6 +82,7 @@ sub player {
         return;
     }
 
+    $c->stash->{url} = sprintf(HLS_URL, $stream->key);
 
     $c->render();
 }
@@ -157,11 +158,19 @@ sub recording {
     my $recording = ( $c->param('action') eq 'start' ) ? 1 : 0;
 
     if ($res->is_success) {
-        # TRANSAKCE
+
+        my $guard = $c->schema->txn_scope_guard;
+
         $stream->update({
             recording => $recording
         });
-        # create/update records
+
+        if ( $recording ) {
+            $stream->add_to_records({
+                publish_user_id => $stream->publish_user_id,
+            });
+        }
+        $guard->commit;
     }
 
     $c->render( json => { recording => $stream->recording  } );