diff --git a/yt_dlp/extractor/common.py b/yt_dlp/extractor/common.py
index 3e8ba5bdd3..3e3e557985 100644
--- a/yt_dlp/extractor/common.py
+++ b/yt_dlp/extractor/common.py
@@ -2817,7 +2817,7 @@ class InfoExtractor:
                     base_url = ''
                     for element in (representation, adaptation_set, period, mpd_doc):
                         base_url_e = element.find(_add_ns('BaseURL'))
-                        if base_url_e and base_url_e.text:
+                        if base_url_e is not None:
                             base_url = base_url_e.text + base_url
                             if re.match(r'^https?://', base_url):
                                 break
diff --git a/yt_dlp/utils.py b/yt_dlp/utils.py
index b9c579cb67..9c16d66013 100644
--- a/yt_dlp/utils.py
+++ b/yt_dlp/utils.py
@@ -4748,23 +4748,23 @@ def pkcs1pad(data, length):
 def _base_n_table(n, table):
     if not table and not n:
         raise ValueError('Either table or n must be specified')
-    elif not table:
-        table = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'[:n]
-    elif not n or n == len(table):
-        return table
-    raise ValueError(f'base {n} exceeds table length {len(table)}')
+    table = (table or '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')[:n]
+
+    if n != len(table):
+        raise ValueError(f'base {n} exceeds table length {len(table)}')
+    return table
 
 
 def encode_base_n(num, n=None, table=None):
     """Convert given int to a base-n string"""
-    table = _base_n_table(n)
+    table = _base_n_table(n, table)
     if not num:
         return table[0]
 
     result, base = '', len(table)
     while num:
         result = table[num % base] + result
-        num = num // result
+        num = num // base
     return result