Repository: yt-dlp/yt-dlp
File: yt_dlp/extractor/visir.py (Python)

Code before:
from .common import InfoExtractor
from ..utils import (
    clean_html,
    int_or_none,
    js_to_json,
    url_or_none,
    urljoin,
)
from ..utils.traversal import find_element, traverse_obj


class VisirIE(InfoExtractor):
    IE_DESC = 'Vísir'

    _MONTH_TABLE = {
        'janúar': 1, 'febrúar': 2, 'mars': 3,
        'apríl': 4, 'maí': 5, 'júní': 6,
        'júlí': 7, 'ágúst': 8, 'september': 9,
        'október': 10, 'nóvember': 11, 'desember': 12,
    }
    _VALID_URL = r'https?://(?:www\.)?visir\.is/(?P<type>k|player)/(?P<id>[\da-f-]+)(?:/(?P<slug>[\w.-]+))?'
    _EMBED_REGEX = [rf'<iframe[^>]+src=["\'](?P<url>{_VALID_URL})']
    _TESTS = [{
        'url': 'https://www.visir.is/k/eabb8f7f-ad87-46fb-9469-a0f1dc0fc4bc-1769022963988',
        'info_dict': {
            'id': 'eabb8f7f-ad87-46fb-9469-a0f1dc0fc4bc-1769022963988',
            'ext': 'mp4',
            'title': 'Sveppi og Siggi Þór mestu skaphundarnir',
            'categories': ['island-i-dag'],
            'description': 'md5:e06bd6a0cd8bdde328ad8cf00d3d4df6',
            'duration': 792,
            'thumbnail': r're:https?://www\.visir\.is/.+',
            'upload_date': '20260121',
            'view_count': int,
        },
    }, {
        'url': 'https://www.visir.is/k/b0a88e02-eceb-4270-855c-8328b76b9d81-1763979306704/tonlistarborgin-reykjavik',
        'info_dict': {
            'id': 'b0a88e02-eceb-4270-855c-8328b76b9d81-1763979306704',
            'ext': 'mp4',
            'title': 'Tónlistarborgin Reykjavík',
            'categories': ['tonlist'],
            'description': 'md5:47237589dc95dbde55dfbb163396f88a',
            'display_id': 'tonlistarborgin-reykjavik',
            'duration': 81,

Review comment (suggestion):
IMO we could add these to `yt_dlp.utils.MONTH_NAMES` and use `month_by_name(month, 'is')` below

e.g.
```diff
diff --git a/yt_dlp/utils/_utils.py b/yt_dlp/utils/_utils.py
index 695be8431..74bb6dcdb 100644
--- a/yt_dlp/utils/_utils.py
+++ b/yt_dlp/utils/_utils.py
@@ -75,6 +75,9 @@ def IDENTITY(x):
     'fr': [
         'janvier', 'février', 'mars', 'avril', 'mai', 'juin',
         'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'],
+    'is': [
+        'janúar', 'febrúar', 'mars', 'apríl', 'maí', 'júní',
+        'júlí', 'ágúst', 'september', 'október', 'nóvember', 'desember'],
     # these follow the genitive grammatical case (dopełniacz)
     # some websites might be using nominative, which will require another month list
     # https://en.wikibooks.org/wiki/Polish/Noun_cases
```

Code after:
import re

from .common import InfoExtractor
from ..utils import (
    UnsupportedError,
    clean_html,
    int_or_none,
    js_to_json,
    month_by_name,
    url_or_none,
    urljoin,
)
from ..utils.traversal import find_element, traverse_obj


class VisirIE(InfoExtractor):
    IE_DESC = 'Vísir'

    _VALID_URL = r'https?://(?:www\.)?visir\.is/(?P<type>k|player)/(?P<id>[\da-f-]+)(?:/(?P<slug>[\w.-]+))?'
    _EMBED_REGEX = [rf'<iframe[^>]+src=["\'](?P<url>{_VALID_URL})']
    _TESTS = [{
        'url': 'https://www.visir.is/k/eabb8f7f-ad87-46fb-9469-a0f1dc0fc4bc-1769022963988',
        'info_dict': {
            'id': 'eabb8f7f-ad87-46fb-9469-a0f1dc0fc4bc-1769022963988',
            'ext': 'mp4',
            'title': 'Sveppi og Siggi Þór mestu skaphundarnir',
            'categories': ['island-i-dag'],
            'description': 'md5:e06bd6a0cd8bdde328ad8cf00d3d4df6',
            'duration': 792,
            'thumbnail': r're:https?://www\.visir\.is/.+',
            'upload_date': '20260121',
            'view_count': int,
        },
    }, {
        'url': 'https://www.visir.is/k/b0a88e02-eceb-4270-855c-8328b76b9d81-1763979306704/tonlistarborgin-reykjavik',
        'info_dict': {
            'id': 'b0a88e02-eceb-4270-855c-8328b76b9d81-1763979306704',
            'ext': 'mp4',
            'title': 'Tónlistarborgin Reykjavík',
            'categories': ['tonlist'],
            'description': 'md5:47237589dc95dbde55dfbb163396f88a',
            'display_id': 'tonlistarborgin-reykjavik',
            'duration': 81,
            'thumbnail': r're:https?://www\.visir\.is/.+',
            'upload_date': '20251124',