def _skip(row, skip):
    """Test if we will need to skip row processing by dealing with the
    following cases:

    - parsing errors
    - items with revision type
    - items with draft status
    - explicit request

    :param row: [required] row to be analized
    :type row: dictionary
    :param skip: [required] list of item ID to be explicitly skiped
    :type skip: list
    :returns: True if we will skip the row
    :rtype: bool
    """
    if row['ID'] in skip:
        logger.info('Skipping row ID: ' + row['ID'])
        return True
    elif len(row) != 23 and 'publish' in row.values():
        logger.warn('Parsing error on row ID: ' + row['ID'])
        return True
    elif row['post_type'] not in KNOWN_POST_TYPES:
        logger.warn('Parsing error on row ID: ' + row['ID'])
        return True
    elif row['post_type'] == 'revision':
        logger.debug('Revision type on row ID: ' + row['ID'])
        return True
    elif row['post_status'] == 'draft':
        logger.debug('Draft status on row ID: ' + row['ID'])
        return True

    return False
    def embed_youtube(self, x):
        """Parse HTML to look for youtube pseudo-tags and replace it
        with iframe tag inserting the youtube video.

        :param x: [required] Parsed Regex
        :type x: type Regex Match object
        :returns: the youtube frame tag
        :rtype: str
        """
        youtube_id = x.group(1)

        logger.info('Embedding youtube video %s' % youtube_id)

        return '<iframe src="https://www.youtube.com/embed/{0}"></iframe>'.format(
            youtube_id
        )