[livestreamfails] Add new extractor
diff --git a/yt_dlp/extractor/_extractors.py b/yt_dlp/extractor/_extractors.py
index 37328dfc840..4e3b2ead04e 100644
--- a/yt_dlp/extractor/_extractors.py
+++ b/yt_dlp/extractor/_extractors.py
@@ -837,6 +837,7 @@
     LivestreamOriginalIE,
     LivestreamShortenerIE,
 )
+from .livestreamfails import LivestreamfailsIE
 from .lnkgo import (
     LnkGoIE,
     LnkIE,
diff --git a/yt_dlp/extractor/livestreamfails.py b/yt_dlp/extractor/livestreamfails.py
new file mode 100644
index 00000000000..d6f626a99c9
--- /dev/null
+++ b/yt_dlp/extractor/livestreamfails.py
@@ -0,0 +1,34 @@
+from .common import InfoExtractor
+from ..utils import format_field, traverse_obj, unified_timestamp
+
+
+class LivestreamfailsIE(InfoExtractor):
+    _VALID_URL = r'https?://(?:www\.)?livestreamfails\.com/clip/(?P<id>[0-9]+)'
+    _TESTS = [{
+        'url': 'https://livestreamfails.com/clip/139200',
+        'md5': '8a03aea1a46e94a05af6410337463102',
+        'info_dict': {
+            'id': '139200',
+            'ext': 'mp4',
+            'display_id': 'ConcernedLitigiousSalmonPeteZaroll-O8yo9W2L8OZEKhV2',
+            'title': 'Streamer jumps off a trampoline at full speed',
+            'creator': 'paradeev1ch',
+            'thumbnail': r're:^https?://.+',
+            'timestamp': 1656271785,
+            'upload_date': '20220626',
+        }
+    }]
+
+    def _real_extract(self, url):
+        video_id = self._match_id(url)
+        api_response = self._download_json(f'https://api.livestreamfails.com/clip/{video_id}', video_id)
+
+        return {
+            'id': video_id,
+            'display_id': api_response.get('sourceId'),
+            'timestamp': unified_timestamp(api_response.get('createdAt')),
+            'url': f'https://livestreamfails-video-prod.b-cdn.net/video/{api_response["videoId"]}',
+            'title': api_response.get('label'),
+            'creator': traverse_obj(api_response, ('streamer', 'label')),
+            'thumbnail': format_field(api_response, 'imageId', 'https://livestreamfails-image-prod.b-cdn.net/image/%s')
+        }

<!--
# Please follow the guide below

- You will be asked some questions, please read them **carefully** and answer honestly
- Put an `x` into all the boxes `[ ]` relevant to your *pull request* (like [x])
- Use *Preview* tab to see how your *pull request* will actually look like

-->

### Before submitting a *pull request* make sure you have:
- [x] At least skimmed through [contributing guidelines](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#developer-instructions) including [yt-dlp coding conventions](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#yt-dlp-coding-conventions)
- [x] [Searched](https://github.com/yt-dlp/yt-dlp/search?q=is%3Apr&type=Issues) the bugtracker for similar pull requests
- [x] Checked the code with [flake8](https://pypi.python.org/pypi/flake8) and [ran relevant tests](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#developer-instructions)

### In order to be accepted and merged into yt-dlp each piece of code must be in public domain or released under [Unlicense](http://unlicense.org/). Check one of the following options:
- [x] I am the original author of this code and I am willing to release it under [Unlicense](http://unlicense.org/)
- [ ] I am not the original author of this code but it is in public domain or released under [Unlicense](http://unlicense.org/) (provide reliable evidence)

### What is the purpose of your *pull request*?
- [ ] Fix or improvement to an extractor (Make sure to add/update tests)
- [x] New extractor ([Piracy websites will not be accepted](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#is-the-website-primarily-used-for-piracy))
- [ ] Core bug fix/improvement
- [ ] New feature (It is strongly [recommended to open an issue first](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#adding-new-feature-or-making-overarching-changes))

---

### Description of your *pull request* and other information
Add an extractor for [Livestreamfails](https://livestreamfails.com/), a Twitch clip mirror site for [r/livestreamfail](https://reddit.com/r/LivestreamFail/).