+ if not m_download:
+ m_trackinfo = re.search(r'trackinfo: (.+),\s*?\n', webpage)
+ if m_trackinfo:
+ json_code = m_trackinfo.group(1)
+ data = json.loads(json_code)[0]
+
+ formats = []
+ for format_id, format_url in data['file'].items():
+ ext, abr_str = format_id.split('-', 1)
+ formats.append({
+ 'format_id': format_id,
+ 'url': format_url,
+ 'ext': ext,
+ 'vcodec': 'none',
+ 'acodec': ext,
+ 'abr': int(abr_str),
+ })
+
+ self._sort_formats(formats)
+
+ return {
+ 'id': compat_str(data['id']),
+ 'title': data['title'],
+ 'formats': formats,
+ 'duration': float(data['duration']),
+ }
+ else:
+ raise ExtractorError('No free songs found')