diff --git a/src/rust/lektor_db/src/connexion.rs b/src/rust/lektor_db/src/connexion.rs
index 235fc9296d93fdb2e31cb8359f6e165601ded978..efedeaf94968542dd2e5090582d37376fa7a5548 100644
--- a/src/rust/lektor_db/src/connexion.rs
+++ b/src/rust/lektor_db/src/connexion.rs
@@ -1,4 +1,5 @@
 use crate::{models::*, uri::LktUri, *};
+use diesel::connection::DefaultLoadingMode;
 use kurisu_api::v1 as api_v1;
 
 /// Create a connexion to a database and run automatically the migrations.
@@ -276,19 +277,37 @@ impl LktDatabaseConnection {
 
     /// Get all infos about a kara, its metadata, its tags, repo, repo id,
     /// languages, karamakers...
-    pub fn get_kara_info(&mut self, local_id: i64) -> LktDatabaseResult<()> {
-        let _repo: String = with_dsl!(repo_kara => repo_kara
+    pub fn get_kara_info(
+        &mut self,
+        local_id: i64,
+    ) -> LktDatabaseResult<Vec<(String, Option<String>)>> {
+        let repo: String = with_dsl!(repo_kara => repo_kara
             .filter(local_kara_id.is(local_id))
             .inner_join(schema::repo::table)
             .select(schema::repo::name)
             .first::<String>(&mut self.sqlite)?
         );
-        let _kara_maker: Vec<String> = with_dsl!(kara => kara
+        let mut ret = vec![(String::from("repo"), Some(repo))];
+
+        for kara_maker in with_dsl!(kara => kara
             .filter(id.is(local_id))
             .inner_join(schema::kara_maker::table)
             .select(schema::kara_maker::name)
-            .load::<String>(&mut self.sqlite)?
-        );
-        todo!()
+            .load_iter::<String, DefaultLoadingMode>(&mut self.sqlite)?
+        ) {
+            ret.push((String::from("karamaker"), Some(kara_maker?)));
+        }
+
+        for tag_entry in with_dsl!(kara_tag => kara_tag
+            .filter(kara_id.is(local_id))
+            .inner_join(schema::tag::table)
+            .select((schema::tag::name, value))
+            .load_iter::<(String, Option<String>), DefaultLoadingMode>(&mut self.sqlite)?
+        ) {
+            let (key, value) = tag_entry?;
+            ret.push((key, value))
+        }
+
+        Ok(ret)
     }
 }