<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_deviation_metadata(self, deviationids, ext_submission=False, ext_camera=False, ext_stats=False, ext_collection=False):
 """Fetch deviation metadata for a set of deviations :param deviationid: The deviationid you want to fetch :param ext_submission: Return extended information - submission information :param ext_camera: Return extended information - EXIF information (if available) :param ext_stats: Return extended information - deviation statistics :param ext_collection: Return extended information - favourited folder information """


        response = self._req('/deviation/metadata', {
            'ext_submission' : ext_submission,
            'ext_camera' : ext_camera,
            'ext_stats' : ext_stats,
            'ext_collection' : ext_collection
        },
        post_data={
            'deviationids[]' : deviationids
        })

        metadata = []

        for item in response['metadata']:
            m = {}
            m['deviationid'] = item['deviationid']
            m['printid'] = item['printid']

            m['author'] = User()
            m['author'].from_dict(item['author'])

            m['is_watching'] = item['is_watching']
            m['title'] = item['title']
            m['description'] = item['description']
            m['license'] = item['license']
            m['allows_comments'] = item['allows_comments']
            m['tags'] = item['tags']
            m['is_favourited'] = item['is_favourited']
            m['is_mature'] = item['is_mature']

            if "submission" in item:
                m['submission'] = item['submission']

            if "camera" in item:
                m['camera'] = item['camera']

            if "collections" in item:
                m['collections'] = item['collections']

            metadata.append(m)

        return metadata