diff --git a/eossr/api/zenodo/__init__.py b/eossr/api/zenodo/__init__.py
index 0758e2748510a376382c315a2f9c93f5ee5a976e..7b7bf7cbd0f9272ec502f026c7f6508b6182ab9a 100644
--- a/eossr/api/zenodo/__init__.py
+++ b/eossr/api/zenodo/__init__.py
@@ -11,6 +11,7 @@ from urllib.request import urlopen
 import warnings
 from ...metadata.codemeta2zenodo import parse_codemeta_and_write_zenodo_metadata_file
 from . import http_status
+from bs4 import BeautifulSoup
 
 __all__ = [
     'ZenodoAPI',
@@ -444,7 +445,14 @@ class Record:
         return f"Record #{self.id} : {self.title}"
 
     def __repr__(self):
-        return json.dumps(self.data, indent=4, sort_keys=True)
+        return f"Record({self.id})"
+
+    def write_zenodo(self, filename='.zenodo.json', overwrite=False):
+        if Path(filename).exists() and not overwrite:
+            raise FileExistsError(f"The file {filename} exists. Use overwrite.")
+        else:
+            with open(filename, 'w') as file:
+                json.dump(self.data, file)
 
     @property
     def id(self):
@@ -456,7 +464,7 @@ class Record:
 
     def print_info(self):
         metadata = self.data['metadata']
-        descrp = metadata['description']
+        descrp = BeautifulSoup(metadata['description']).text
         print(f"=== Record #{self.id} ===")
         print(f"Title: {self.title} ===")
         print(f"DOI: {self.data['doi']}")
@@ -480,9 +488,9 @@ class Record:
 
     @property
     def doi(self):
-        if not 'conceptdoi' in self.data:
-            raise KeyError(f"Record {self.id} does not have a conceptdoi")
-        return self.data['conceptdoi']
+        if not 'doi' in self.data:
+            raise KeyError(f"Record {self.id} does not have a doi")
+        return self.data['doi']
 
     def get_mybinder_url(self):
         binder_zenodo_url = 'https://mybinder.org/v2/zenodo/'
diff --git a/eossr/api/zenodo/tests/test_zenodo.py b/eossr/api/zenodo/tests/test_zenodo.py
index c9b51bdb5aad88a4015cefcaf932151b3d52cd28..7393e93a0fceac8173f9ea005ad13b7c9b39798a 100644
--- a/eossr/api/zenodo/tests/test_zenodo.py
+++ b/eossr/api/zenodo/tests/test_zenodo.py
@@ -167,3 +167,10 @@ def test_record(test_get_record_4923992):
 def test_get_record_sandbox():
     record = get_record(520735, sandbox=True)
     assert record.data['doi'] == '10.5072/zenodo.520735'
+
+def test_write_record_zenodo(test_get_record_4923992, tmpdir):
+    record = test_get_record_4923992
+    record.write_zenodo(filename=tmpdir/'.zenodo.json')
+    with open(tmpdir/'.zenodo.json') as file:
+        json_dict = json.load(file)
+    assert json_dict['conceptdoi'] == '10.5281/zenodo.3572654'
diff --git a/setup.py b/setup.py
index 353cd982e40e93e7b2ba25f00555f4e738bc1c5d..f62ace101b7b753872c7f1440d4bf67bc47b305b 100644
--- a/setup.py
+++ b/setup.py
@@ -23,7 +23,8 @@ setup(
     version=get_property('__version__', 'eossr'),
     description="ESCAPE OSSR library",
     install_requires=[
-        "requests"
+        "requests",
+        "bs4",
     ],
     packages=find_packages(),
     scripts=['eossr/scripts/parse_last_release_git.sh'],