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

Code before:

        categories = metadata.get('categoryPath')
        if not categories:
            category = try_get(video, lambda x: x['category'].strip().removeprefix('category_'))
            categories = [category] if category else None
        tags = video.get('tags')

        return {
            'id': video_id,
            'title': title,
            'description': video.get('description'),
            'thumbnail': thumbnail_url,
            'uploader': video.get('author', {}).get('nickname'),
            'duration': int_or_none(video.get('lengthBySec')) or parse_duration(video.get('length')),
            'view_count': int_or_none(video.get('views')),
            'formats': formats,
            'average_rating': int_or_none(video.get('rating')),
            'comment_count': int_or_none(video.get('numOfComments')),
            'age_limit': 18 if video.get('contentRatingId') == 2 else 0,
            'categories': categories,
            'tags': tags.split(', ') if tags else None,
        }


class VeohUserIE(VeohIE):
    _VALID_URL = r'https?://(?:www\.)?veoh\.com/users/(?P<user>([\da-zA-Z_\-]+))'
    IE_NAME = 'veoh:user'

    _TESTS = [
        {
            'url': 'https://www.veoh.com/users/valentinazoe',
            'info_dict': {
                'id': 'valentinazoe',
                'title': 'valentinazoe (Uploads)'
            },
            'playlist_mincount': 75
        },
        {
            'url': 'https://www.veoh.com/users/PiensaLibre',
            'info_dict': {
                'id': 'PiensaLibre',
                'title': 'PiensaLibre (Uploads)'
            },
            'playlist_mincount': 2
        }]

    _USERSINFO_ENDPOINT = 'https://www.veoh.com/users/published/videos'
    _VIDEO_BASEURL = 'https://www.veoh.com/watch/'

    def _get_authtoken(self, page, uploader=None):
        webpage = self._download_webpage(page, uploader)

Review comment (suggestion):
```suggestion
    _VALID_URL = r'https?://(?:www\.)?veoh\.com/users/(?P<id>[\w-]+)'
```

Code after:
        if not categories:
            category = try_get(video, lambda x: x['category'].strip().removeprefix('category_'))
            categories = [category] if category else None
        tags = video.get('tags')

        return {
            'id': video_id,
            'title': title,
            'description': video.get('description'),
            'thumbnail': thumbnail_url,
            'uploader': video.get('author', {}).get('nickname'),
            'duration': int_or_none(video.get('lengthBySec')) or parse_duration(video.get('length')),
            'view_count': int_or_none(video.get('views')),
            'formats': formats,
            'average_rating': int_or_none(video.get('rating')),
            'comment_count': int_or_none(video.get('numOfComments')),
            'age_limit': 18 if video.get('contentRatingId') == 2 else 0,
            'categories': categories,
            'tags': tags.split(', ') if tags else None,
        }


class VeohUserIE(VeohIE):
    _VALID_URL = r'https?://(?:www\.)?veoh\.com/users/(?P<id>[\w-]+)'
    IE_NAME = 'veoh:user'

    _TESTS = [
        {
            'url': 'https://www.veoh.com/users/valentinazoe',
            'info_dict': {
                'id': 'valentinazoe',
                'title': 'valentinazoe (Uploads)'
            },
            'playlist_mincount': 75
        },
        {
            'url': 'https://www.veoh.com/users/PiensaLibre',
            'info_dict': {
                'id': 'PiensaLibre',
                'title': 'PiensaLibre (Uploads)'
            },
            'playlist_mincount': 2
        }]

    _PAGE_SIZE = 16

    def _fetch_page(self, uploader, page):
        response = self._download_json(
            'https://www.veoh.com/users/published/videos', uploader,
            note=f'Downloading videos page {page + 1}',
            headers={