diff --git a/docs/usage.rst b/docs/usage.rst
index 467c0c1..b387fa3 100644
--- a/docs/usage.rst
+++ b/docs/usage.rst
@@ -114,6 +114,7 @@ of these from the supplied URL.
 Supports the following URL formats:
 
 * https://www.periscope.tv/w/<broadcast_id>
+* https://www.periscope.tv/u/<user_id>
 * https://www.periscope.tv/<username>
 * https://www.periscope.tv/<username>/<broadcast_id>
 
diff --git a/pyperi/pyperi.py b/pyperi/pyperi.py
index 3caca5d..e2345c1 100644
--- a/pyperi/pyperi.py
+++ b/pyperi/pyperi.py
@@ -65,6 +65,7 @@ class PyPeri(object):
 
         url_parsers = [
             self.parse_periscope_w_url,
+            self.parse_periscope_u_url,
             self.parse_periscope_username_broadcast_id_url,
             self.parse_periscope_username_url,
         ]
@@ -90,9 +91,6 @@ class PyPeri(object):
 
             * https://www.periscope.tv/w/<broadcast_id>
 
-        If a `broadcast_id` is not found in the supplied URL, or the URL
-        doesn't particularly look like a "/w/" URL, then will return `None`.
-
         Returns a dict of `username`, `broadcast_id` and `user_id` values.
         """
         out = {
@@ -158,3 +156,29 @@ class PyPeri(object):
             out['username'] = username
             out['broadcast_id'] = broadcast_id
         return out
+
+    def parse_periscope_u_url(self, url):
+        """
+        Retrieve the `user_id` from the supplied "/u/" URL.
+
+        "/u/" URLs look like this:
+
+            * https://www.periscope.tv/u/<user_id>
+
+        Returns a dict of `username`, `broadcast_id` and `user_id` values.
+        """
+        out = {
+            'broadcast_id': None,
+            'user_id': None,
+            'username': None,
+        }
+
+        u_url_pattern = '{base_url}/u/([0-9]+)'.format(
+            base_url=PyPeri.PERISCOPE_WEB_BASE_URL
+        )
+
+        u_result = match(u_url_pattern, url)
+        if u_result:
+            broadcast_id = u_result.group(1)
+            out['user_id'] = broadcast_id
+        return out

Retrieve user id from https://www.periscope.tv/u/<user id> URLs
diff --git a/tests/test_pyperi.py b/tests/test_pyperi.py
index 16c7adc..6282d0c 100644
--- a/tests/test_pyperi.py
+++ b/tests/test_pyperi.py
@@ -134,6 +134,23 @@ def test_parse_periscope_url_username_broadcast_id():
             }
 
 
+def test_parse_periscope_url_u():
+    pp = PyPeri()
+    user_ids = [
+        '376827',
+    ]
+
+    for user_id in user_ids:
+        url = 'https://www.periscope.tv/u/{user_id}'.format(
+            user_id=user_id
+        )
+        assert pp.parse_periscope_url(url) == {
+            'username': None,
+            'user_id': user_id,
+            'broadcast_id': None,
+        }
+
+
 def test_parse_periscope_w_url():
     pp = PyPeri()
     broadcast_ids = [
@@ -206,3 +223,20 @@ def test_parse_periscope_username_broadcast_id_url():
     assert pp.parse_periscope_username_broadcast_id_url(
         'https://www.periscope.tv/okUsername/'
     ) == blank_result
+
+
+def test_parse_periscope_u_url():
+    pp = PyPeri()
+    user_ids = [
+        '376827',
+    ]
+
+    for user_id in user_ids:
+        url = 'https://www.periscope.tv/u/{user_id}'.format(
+            user_id=user_id
+        )
+        assert pp.parse_periscope_u_url(url) == {
+            'username': None,
+            'user_id': user_id,
+            'broadcast_id': None,
+        }

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest httpretty
apt-get update apt-get install -y gcc
3.9
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
exceptiongroup==1.2.2
httpretty==1.1.4
iniconfig==2.1.0
packaging==24.2
pluggy==1.5.0
-e git+https://github.com/takeontom/PyPeri.git@aabd85e2fea2cf9ea06c18db401146885c6ff181#egg=pyperi
pytest==8.3.5
requests==2.12.4
tomli==2.2.1

name: PyPeri
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=25.0=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - exceptiongroup==1.2.2
      - httpretty==1.1.4
      - iniconfig==2.1.0
      - packaging==24.2
      - pluggy==1.5.0
      - pytest==8.3.5
      - requests==2.12.4
      - tomli==2.2.1
prefix: /opt/conda/envs/PyPeri

tests/test_pyperi.py::test_parse_periscope_url_u tests/test_pyperi.py::test_parse_periscope_u_url
tests/test_pyperi.py::test_request_api tests/test_pyperi.py::test_create_api_request_url tests/test_pyperi.py::test_get_broadcast_info tests/test_pyperi.py::test_get_user_info tests/test_pyperi.py::test_parse_periscope_url_w tests/test_pyperi.py::test_parse_periscope_url_username tests/test_pyperi.py::test_parse_periscope_url_username_broadcast_id tests/test_pyperi.py::test_parse_periscope_w_url tests/test_pyperi.py::test_parse_periscope_username_url tests/test_pyperi.py::test_parse_periscope_username_broadcast_id_url
pyperi/pyperi.py docs/usage.rst
pyperi/pyperi.py docs/usage.rst