diff --git a/docs/usage.rst b/docs/usage.rst
index aa54fc3..467c0c1 100644
--- a/docs/usage.rst
+++ b/docs/usage.rst
@@ -115,6 +115,7 @@ Supports the following URL formats:
 
 * https://www.periscope.tv/w/<broadcast_id>
 * https://www.periscope.tv/<username>
+* https://www.periscope.tv/<username>/<broadcast_id>
 
 Example usage::
 
diff --git a/pyperi/pyperi.py b/pyperi/pyperi.py
index 5dcfaa5..3caca5d 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_username_broadcast_id_url,
             self.parse_periscope_username_url,
         ]
 
@@ -127,8 +128,33 @@ class PyPeri(object):
         username_url_pattern = '{base_url}/([A-Za-z0-9_]+)'.format(
             base_url=PyPeri.PERISCOPE_WEB_BASE_URL
         )
-        username_url = match(username_url_pattern, url)
-        if username_url:
-            username = username_url.group(1)
+        username_result = match(username_url_pattern, url)
+        if username_result:
+            username = username_result.group(1)
             out['username'] = username
         return out
+
+    def parse_periscope_username_broadcast_id_url(self, url):
+        """
+        Extract the `username`and `broadcast_id` from URLs formatted like this:
+
+            * https://www.periscope.tv/<username>/<broadcast_id>
+
+        Returns a dict of `username`, `broadcast_id` and `user_id` values.
+        """
+        out = {
+            'broadcast_id': None,
+            'user_id': None,
+            'username': None,
+        }
+
+        url_pattern = '{base_url}/([A-Za-z0-9_]+)/([A-Za-z0-9]+)'.format(
+            base_url=PyPeri.PERISCOPE_WEB_BASE_URL
+        )
+        result = match(url_pattern, url)
+        if result:
+            username = result.group(1)
+            broadcast_id = result.group(2)
+            out['username'] = username
+            out['broadcast_id'] = broadcast_id
+        return out

Retrieve username and broadcast ID from https://www.periscope.tv/<username>/<broadcast id> urls
diff --git a/tests/test_pyperi.py b/tests/test_pyperi.py
index 2ffb5e2..16c7adc 100644
--- a/tests/test_pyperi.py
+++ b/tests/test_pyperi.py
@@ -110,6 +110,30 @@ def test_parse_periscope_url_username():
         }
 
 
+def test_parse_periscope_url_username_broadcast_id():
+    pp = PyPeri()
+    usernames = [
+        'someusername',
+        'some_username',
+        'SomeUsername',
+    ]
+    broadcast_ids = [
+        '1zqKVWybqeDGB',
+    ]
+
+    for username in usernames:
+        for broadcast_id in broadcast_ids:
+            username_url = 'https://www.periscope.tv/{username}/{broadcast_id}'.format(
+                username=username,
+                broadcast_id=broadcast_id,
+            )
+            assert pp.parse_periscope_url(username_url) == {
+                'user_id': None,
+                'username': username,
+                'broadcast_id': broadcast_id,
+            }
+
+
 def test_parse_periscope_w_url():
     pp = PyPeri()
     broadcast_ids = [
@@ -144,3 +168,41 @@ def test_parse_periscope_username_url():
             'username': username,
             'broadcast_id': None,
         }
+
+
+def test_parse_periscope_username_broadcast_id_url():
+    pp = PyPeri()
+    usernames = [
+        'someusername',
+        'some_username',
+        'SomeUsername',
+    ]
+    broadcast_ids = [
+        '1zqKVWybqeDGB',
+    ]
+
+    for username in usernames:
+        for broadcast_id in broadcast_ids:
+            username_url = 'https://www.periscope.tv/{username}/{broadcast_id}'.format(
+                username=username,
+                broadcast_id=broadcast_id,
+            )
+            assert pp.parse_periscope_username_broadcast_id_url(username_url) == {
+                'user_id': None,
+                'username': username,
+                'broadcast_id': broadcast_id,
+            }
+
+    blank_result = {
+        'user_id': None,
+        'username': None,
+        'broadcast_id': None,
+    }
+
+    assert pp.parse_periscope_username_broadcast_id_url(
+        'https://www.periscope.tv/okUsername/'
+    ) == blank_result
+
+    assert pp.parse_periscope_username_broadcast_id_url(
+        'https://www.periscope.tv/okUsername/'
+    ) == blank_result

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest pytest-cov pytest-xdist pytest-mock pytest-asyncio 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
coverage==7.8.0
exceptiongroup==1.2.2
execnet==2.1.1
httpretty==1.1.4
iniconfig==2.1.0
packaging==24.2
pluggy==1.5.0
-e git+https://github.com/takeontom/PyPeri.git@fcb406c3ea62c4259ef71eebf3fc773014eacace#egg=pyperi
pytest==8.3.5
pytest-asyncio==0.26.0
pytest-cov==6.0.0
pytest-mock==3.14.0
pytest-xdist==3.6.1
requests==2.12.4
tomli==2.2.1
typing_extensions==4.13.0

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:
      - coverage==7.8.0
      - exceptiongroup==1.2.2
      - execnet==2.1.1
      - httpretty==1.1.4
      - iniconfig==2.1.0
      - packaging==24.2
      - pluggy==1.5.0
      - pytest==8.3.5
      - pytest-asyncio==0.26.0
      - pytest-cov==6.0.0
      - pytest-mock==3.14.0
      - pytest-xdist==3.6.1
      - requests==2.12.4
      - tomli==2.2.1
      - typing-extensions==4.13.0
prefix: /opt/conda/envs/PyPeri

tests/test_pyperi.py::test_parse_periscope_url_username_broadcast_id tests/test_pyperi.py::test_parse_periscope_username_broadcast_id_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_w_url tests/test_pyperi.py::test_parse_periscope_username_url
pyperi/pyperi.py docs/usage.rst
pyperi/pyperi.py docs/usage.rst