diff --git a/public/index.php b/public/index.php
index b9557736663bfb5924268b0bea37ed4b1c869a6e..32680ec59508b596e95c1095eb8b5b8ba9807532 100644
--- a/public/index.php
+++ b/public/index.php
@@ -49,35 +49,37 @@ $templateData = [
   'errors' => [],
 ];
 
-$selectedPlaylistId = '';
-if (isset($_GET['playlist'])) {
-    $selectedPlaylistId = $_GET['playlist'];
-}
-
+$generatePlaylistFromPlaylist = isset($_GET['generate-playlist-from-playlist']);
 $generatePlaylistFromArtists = isset($_GET['generate-playlist-top-artists']);
 
-if ($selectedPlaylistId) {
-    $playlist = $api->getPlaylist($selectedPlaylistId);
-    error_log('Will create new playlist from tracks in playlist '.$selectedPlaylistId.' "'.$playlist->name.'".');
+if ($generatePlaylistFromPlaylist) {
+    $selectedPlaylists = $_GET['selected-playlist'];
+    error_log('Will create new playlist with recommendations from playlists: '.join(', ', $selectedPlaylists).'".');
     $recommendedTrackIds = [];
-    $playlistTracks = $playlist->tracks->items;
-    error_log('Found '.count($playlistTracks).' tracks.');
-    foreach ($playlistTracks as $track) {
-        $artists = [];
-        foreach ($track->track->artists as $artist) {
-            $artists[] = $artist->name;
-        }
-        error_log('Track '.$track->track->id.' "'.$track->track->name.'" ('.join(', ', $artists).')');
 
-        $recommendations = $api->getRecommendations([
-            'seed_tracks' => [$track->track->id],
-            'limit' => 20
-        ]);
-        error_log(' -> Got '.count($recommendations->tracks).' recommendatations.');
-        foreach ($recommendations->tracks as $recommendedTrack) {
-            $recommendedTrackIds[$recommendedTrack->id] = 1;
+    foreach ($selectedPlaylists as $selectedPlaylistId) {
+        $playlist = $api->getPlaylist($selectedPlaylistId);
+        error_log('Will get recommendations from tracks in playlist '.$selectedPlaylistId.' "'.$playlist->name.'".');
+        $playlistTracks = $playlist->tracks->items;
+        error_log('Found '.count($playlistTracks).' tracks.');
+        foreach ($playlistTracks as $track) {
+            $artists = [];
+            foreach ($track->track->artists as $artist) {
+                $artists[] = $artist->name;
+            }
+            error_log('Track '.$track->track->id.' "'.$track->track->name.'" ('.join(', ', $artists).')');
+
+            $recommendations = $api->getRecommendations([
+              'seed_tracks' => [$track->track->id],
+              'limit' => 20
+          ]);
+            error_log(' -> Got '.count($recommendations->tracks).' recommendatations.');
+            foreach ($recommendations->tracks as $recommendedTrack) {
+                $recommendedTrackIds[$recommendedTrack->id] = 1;
+            }
         }
     }
+
     $recommendedTrackIds = array_keys($recommendedTrackIds);
     error_log('=> Got '.count($recommendedTrackIds).' unique recommendatations for this playlist.');
     shuffle($recommendedTrackIds);
@@ -136,7 +138,7 @@ if ($selectedPlaylistId) {
     $templateData['infos'][] = 'Ok created new playlist with '.count($pickedTrackIds).' tracks: '.$playlistLink;
 } else {
     $templateData['topArtists'] = $api->getMyTop('artists', ['limit' => 16, 'time_range' => 'short_term'])->items;
-    $templateData['playlists'] = $api->getUserPlaylists($user->id)->items;
+    $templateData['playlists'] = $api->getUserPlaylists($user->id, ['limit' => 30])->items;
 }
 
 require '../template.php';
diff --git a/template.php b/template.php
index ec9d91a73ac93b215a3e4ffad24f0eb033ba27ca..3bbce5ebee2dfacd2fff9964f5fa5af6b4cb874a 100644
--- a/template.php
+++ b/template.php
@@ -72,14 +72,28 @@
       <?php } ?>
 
       <?php if (count($templateData['playlists'])) { ?>
-        <h3>Please pick a playlist to get recommendations from:</h3>
-        <div class="list-group">
-          <?php foreach ($templateData['playlists'] as $playlist) { ?>
-            <a href="index.php?playlist=<?php echo $playlist->id; ?>" class="list-group-item list-group-item-action">
-              <?php echo $playlist->name; ?>
-            </a>
-          <?php } ?>
-        </div>
+        <form class="clearfix">
+          <legend>Generate playlist from tracks in existing playlist:</legend>
+          <ul class="list-unstyled row row-cols-2">
+            <?php foreach ($templateData['playlists'] as $playlist) { ?>
+              <li class="col">
+                <div class="custom-control custom-checkbox">
+                  <input
+                    type="checkbox"
+                    class="custom-control-input"
+                    id="check-playlist-<?php echo $playlist->id; ?>"
+                    name="selected-playlist[]"
+                    value="<?php echo $playlist->id; ?>"
+                  >
+                  <label class="custom-control-label" for="check-playlist-<?php echo $playlist->id; ?>">
+                    <?php echo $playlist->name; ?>
+                  </label>
+                </div>
+              </li>
+            <?php } ?>
+          </ul>
+          <button name="generate-playlist-from-playlist" type="submit" class="btn btn-secondary float-end">🎶 Generate!</button>
+        </form>
       <?php } ?>
 
     </div>