diff --git a/common/lkt.js b/common/lkt.js
index 6f65b1e02d8d5ef80f18407aa4d8207b211d15e8..d791194d6f02dc8b13e0d926c239b3d3e35724b2 100644
--- a/common/lkt.js
+++ b/common/lkt.js
@@ -1,3 +1,5 @@
+const { match } = require('assert');
+
 const logger = require.main.require('./common/logger.js'),
     net = require('net'),
     { finished } = require('stream'),
@@ -137,8 +139,12 @@ class LktClient {
     static commandPlaylistListKaras(playlist) {
         var client = new this();
         var once = false;
-        var result = {};
+        var result = [];
+        var matches;
         var dataObj;
+        var karaList;
+        const regex = /([0-9]+) (vo|va|amv|cdg|autres|vtuber) - (jp|fr|en|ru|sp|it|ch|latin|multi|undefined) \/ (.+) - (OP|ED|IS|AMV|PV|MV|LIVE)([0-9]*) - (.+) \[ (.+) \]/;
+        var reg = new RegExp(regex);
         function __getResult(client) {
             return new Promise(resolv => {
                 client.m_socket.setTimeout(0);
@@ -150,8 +156,21 @@ class LktClient {
                     } else {
                         client.close();
                         dataObj = __mpdToObject(data);
-                        result = data.split("\n");
-                        result.splice(dataObj.continue);
+                        karaList = data.split("\n");
+                        karaList.splice(dataObj.continue);
+                        karaList.forEach(kara => {
+                            matches = reg.exec(kara);
+                            result.push( {
+                                id:matches[1],
+                                cat: matches[2],
+                                language:matches[3],
+                                source:matches[4],
+                                type:matches[5]+matches[6],
+                                title:matches[7],
+                                author:matches[8]
+                            });
+                            //logger.info("kara",matches[1]);
+                        });
                         resolv(result);
                     }
                 });
diff --git a/instance/main.js b/instance/main.js
index 264603febaff3fc61175509fabaac84e58c58bed..03f35329140a6ec272e8c009da3de32f93610398 100644
--- a/instance/main.js
+++ b/instance/main.js
@@ -177,6 +177,7 @@ function configureLeftPanel() {
 
     playlistSelect.onchange = () => {
         currentPlaylist = playlistSelect.value;
+        logger.info("cc");
         ipcRenderer.send('get-playlist-data',playlistSelect.value);
     }
     
@@ -200,6 +201,7 @@ ipcRenderer.on('reload-queue-responce', (event, arg) => {
     logger.debug('instance', `Web page got reload-queue`);
     countKaraInQueue = 0;
     document.getElementById('queueList').innerHTML = '';
+    logger.info("queue",JSON.stringify(arg[0]));
     arg.forEach(kara => {
         countKaraInQueue++;
         ejs.renderFile(__dirname + '/views/karaQueueListItem.ejs', { kara: kara }, (err, data) => {
@@ -235,6 +237,9 @@ ipcRenderer.on('send-runnings', (event, arg) => {
 });
 
 ipcRenderer.on('playlists-updated', (event, playlists) => {
+    if(!playlists) {
+        return;
+    }
     var selector = document.getElementById("playlist-selector")
     selector.innerHTML = '';
     if(!selector.value) {
@@ -250,10 +255,10 @@ ipcRenderer.on('playlists-updated', (event, playlists) => {
 });
 
 ipcRenderer.on('playlist-data-responce', (event,karas) => {
-    var playListPanel = document.getElementById('playlistList')
+    var playListPanel = document.getElementById('playlistList');
     playListPanel.innerHTML = '';
     karas.forEach(kara => {
-        ejs.renderFile(__dirname + '/views/kara.ejs', { kara: kara }, (err, data) => {
+        ejs.renderFile(__dirname + '/views/karaPlaylistListItem.ejs', { kara: kara }, (err, data) => {
             if (err) logger.error('instance', err);
             playListPanel.innerHTML = `
                 ${playListPanel.innerHTML}
diff --git a/instance/views/karaPlaylistListItem.ejs b/instance/views/karaPlaylistListItem.ejs
new file mode 100644
index 0000000000000000000000000000000000000000..941e76c0f2244c0014a7e0bbaff09ea0802717ee
--- /dev/null
+++ b/instance/views/karaPlaylistListItem.ejs
@@ -0,0 +1,10 @@
+<%# vim: ts=4 syntax=html
+    The template for the kara card in lists %>
+<li class="card p-2 bd-highlight shadow-none d-flex flex-row bd-highlight mb-3 karaCard karaPlaylist">
+    <%- include('kara.ejs'); %>
+    <div class="karaElement p-2 bd-highlight">
+        <div class="d-flex flex-row bd-highlight mb-3 btn-group karaActionBtnGroup" role="group">
+            <button class="btn btn-outline-light karaActionBtn karaDeleteBtn" title="Delete"><i class="fas fa-times"></i></button>
+        </div>
+    </div>
+</li>
diff --git a/instance/views/panels.ejs b/instance/views/panels.ejs
index 57f0e19c9fc08db4ed055e42927b49514386e202..f563bd7c8a26effa7c5d06a11d3c77c1d20f363b 100644
--- a/instance/views/panels.ejs
+++ b/instance/views/panels.ejs
@@ -32,7 +32,7 @@
             <ul class="panel bd-highlight mb-3 pl-0" id="queueList"></ul>
         </div>
         <div id="playlist-panel" class="tab-pane fade"  role="tabpanel" aria-labelledby="playlist-tab">
-            <ul id="playlistList"></ul>
+            <ul class="panel bd-highlight mb-3 pl-0" id="playlistList"></ul>
         </div>
     </div>
     </div>
diff --git a/main.js b/main.js
index 790fbf0af0d9882eee0635f8b42d4eb195233867..cdc17c26383714ab7b25f6e517dbb7b512f70d94 100644
--- a/main.js
+++ b/main.js
@@ -280,6 +280,7 @@ ipcMain.on('add-kara-queue-pos', (event, addparams) => {
     lkt.commandQueueAddId(addparams.id).then(() => lkt.commandMove(addparams.queueSize + 1, addparams.position));
 });
 
+var currentPlaylist = "";
 ipcMain.on('verify-lektord', (event, arg) => {
     lkt.ping().then(sta => {
         logger.debug('main', `Status from ping is ${sta}`);
@@ -350,7 +351,16 @@ ipcMain.on('verify-lektord', (event, arg) => {
                     win.webContents.send('playlists-updated', playlists);
                 });
             }
-        }, 50)
+        }, 50);
+
+        setInterval(() => {
+            if(currentPlaylist !=  "" && lkt.isPlaylistsUpdated()) {
+                lkt.setPlaylistsUpdated(false);
+                lkt.commandPlaylistListKaras(currentPlaylist).then((karas) => {
+                    win.webContents.send('playlist-data-responce', karas);
+                });
+            }
+        }, 50);
     });
 });
 
@@ -389,7 +399,10 @@ ipcMain.on('verify-playlists-reloaded-request',(event,arg) => {
 });
 
 ipcMain.on('get-playlist-data', (event, playlist) => {
-    lkt.commandPlaylistListKaras(playlist).then((karas) => {
-        event.reply('playlist-data-responce',karas);
-    })
+    if(playlist) {
+        currentPlaylist = playlist;
+        lkt.commandPlaylistListKaras(currentPlaylist).then((karas) => {
+            win.webContents.send('playlist-data-responce',karas);
+        });
+    }
 });
\ No newline at end of file