def seperate_metadata_and_content(s):
    """
    Given a string the metadata is seperated from the content. The string must be in the following format:
    
    metadata_tag1: metadata_value1
    metadata_tag2: metadata_value2
    ...
    metadata_tagn: metadata_valuen
    <Two newlines>
    content
    content
    
    content
    ...
    
    Returns (metadata, content)
    
    If no metadata is present then an empty string is returned, same with content.
    """
    m_and_c = s.split('\n\n', 1)
    metadata = ''
    content = ''
    
    # normal case where we have metadata and content
    if len(m_and_c) == 2:
        metadata = m_and_c[0].strip()
        content = m_and_c[1].strip()
    # if we only have one of content or metadata this process determines which it is
    elif len(m_and_c) == 1:
        value = m_and_c[0].strip()
        if not len(value) == 0:
            lines = value.split('\n')
            is_metadata = True
            for l in lines:
                key_value = l.split(':', 1)
                if len(key_value) != 2:
                    is_metadata = False
                    break
            
            if is_metadata:
                metadata = value
            else:
                content = value
    
    return (metadata, content)