diff --git a/server/providers/Audible.js b/server/providers/Audible.js
index de98f67b52..97fea620e4 100644
--- a/server/providers/Audible.js
+++ b/server/providers/Audible.js
@@ -79,12 +79,19 @@ class Audible {
         }
     }
 
+    /**
+     * Test if a search title matches an ASIN. Supports lowercase letters
+     * 
+     * @param {string} title 
+     * @returns {boolean}
+     */
     isProbablyAsin(title) {
-        return /^[0-9A-Z]{10}$/.test(title)
+        return /^[0-9A-Za-z]{10}$/.test(title)
     }
 
     asinSearch(asin, region) {
-        asin = encodeURIComponent(asin)
+        if (!asin) return []
+        asin = encodeURIComponent(asin.toUpperCase())
         var regionQuery = region ? `?region=${region}` : ''
         var url = `https://api.audnex.us/books/${asin}${regionQuery}`
         Logger.debug(`[Audible] ASIN url: ${url}`)
@@ -124,7 +131,7 @@ class Audible {
             const url = `https://api.audible${tld}/1.0/catalog/products?${queryString}`
             Logger.debug(`[Audible] Search url: ${url}`)
             items = await axios.get(url).then((res) => {
-                if (!res || !res.data || !res.data.products) return null
+                if (!res?.data?.products) return null
                 return Promise.all(res.data.products.map(result => this.asinSearch(result.asin, region)))
             }).catch(error => {
                 Logger.error('[Audible] query search error', error)