mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-30 12:01:28 +00:00
[ie/suno] add /song mp3 extractor
This commit is contained in:
parent
282e19db82
commit
3c59d3e7a2
|
@ -1983,6 +1983,7 @@
|
||||||
from .stripchat import StripchatIE
|
from .stripchat import StripchatIE
|
||||||
from .stv import STVPlayerIE
|
from .stv import STVPlayerIE
|
||||||
from .substack import SubstackIE
|
from .substack import SubstackIE
|
||||||
|
from .suno import SunoIE
|
||||||
from .sunporno import SunPornoIE
|
from .sunporno import SunPornoIE
|
||||||
from .sverigesradio import (
|
from .sverigesradio import (
|
||||||
SverigesRadioEpisodeIE,
|
SverigesRadioEpisodeIE,
|
||||||
|
|
41
yt_dlp/extractor/suno.py
Normal file
41
yt_dlp/extractor/suno.py
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
from .common import InfoExtractor
|
||||||
|
|
||||||
|
|
||||||
|
class SunoIE(InfoExtractor):
|
||||||
|
_VALID_URL = r'https?://(?:www\.)?suno\.com/song/(?P<id>[-a-f0-9]+)'
|
||||||
|
_TESTS = [
|
||||||
|
{
|
||||||
|
'url': 'https://suno.com/song/ab39a04d-b2e6-463b-9b8e-ddea725422f5',
|
||||||
|
'md5': 'ef850763b175d8a3c7fba5e2dbdc6bc5',
|
||||||
|
'info_dict': {
|
||||||
|
'id': 'ab39a04d-b2e6-463b-9b8e-ddea725422f5',
|
||||||
|
'title': 'Life\'s a Soundtrack · AI Funk Factory @ YT by @funk | Suno',
|
||||||
|
'description': 'groovy funk, melodic song. Listen and make your own with Suno.',
|
||||||
|
'thumbnail': 'https://cdn2.suno.ai/image_903f2bd7-ccc0-4029-a76a-887f07ebc2df.jpeg',
|
||||||
|
'ext': 'mp3',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'url': 'https://suno.com/song/9cbcb5f4-f367-4f1c-8a32-23ec62bdc47e',
|
||||||
|
'md5': '2f038badef88d189891d5f8cd8d8804d',
|
||||||
|
'info_dict': {
|
||||||
|
'id': '9cbcb5f4-f367-4f1c-8a32-23ec62bdc47e',
|
||||||
|
'title': 'Pequenos Prazeres da Vida by @groovebot | Suno',
|
||||||
|
'description': 'pop bossa nova song. Listen and make your own with Suno.',
|
||||||
|
'thumbnail': 'https://cdn2.suno.ai/image_9cbcb5f4-f367-4f1c-8a32-23ec62bdc47e.jpeg',
|
||||||
|
'ext': 'mp3',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
def _real_extract(self, url):
|
||||||
|
video_id = self._match_id(url)
|
||||||
|
webpage = self._download_webpage(url, video_id)
|
||||||
|
|
||||||
|
return {
|
||||||
|
'id': video_id,
|
||||||
|
'title': self._og_search_title(webpage),
|
||||||
|
'description': self._og_search_description(webpage),
|
||||||
|
'thumbnail': self._og_search_thumbnail(webpage),
|
||||||
|
'url': self._og_search_property('audio', webpage),
|
||||||
|
}
|
Loading…
Reference in a new issue