From 0704602e5027128ab1e1b9bcfdcd058fdedd005f Mon Sep 17 00:00:00 2001
From: MiguelX413 <lbpgaming27@gmail.com>
Date: Mon, 18 Apr 2022 07:49:34 +0000
Subject: [PATCH] Checks if caption is not None before normalization (#1475)

---
 instaloader/structures.py | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/instaloader/structures.py b/instaloader/structures.py
index 8b5e986..52b56fd 100644
--- a/instaloader/structures.py
+++ b/instaloader/structures.py
@@ -365,10 +365,16 @@ class Post:
     @property
     def caption(self) -> Optional[str]:
         """Caption."""
+        def _normalize(string: Optional[str]) -> Optional[str]:
+            if string is not None:
+                return normalize("NFC", string)
+            else:
+                return None
+
         if "edge_media_to_caption" in self._node and self._node["edge_media_to_caption"]["edges"]:
-            return normalize("NFC", self._node["edge_media_to_caption"]["edges"][0]["node"]["text"])
+            return _normalize(self._node["edge_media_to_caption"]["edges"][0]["node"]["text"])
         elif "caption" in self._node:
-            return normalize("NFC", self._node["caption"])
+            return _normalize(self._node["caption"])
         return None
 
     @property