This commit is contained in:
Mivik 2025-12-06 00:27:11 +01:00 committed by GitHub
commit 28e9058735
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -156,18 +156,36 @@ class NetEaseMusicIE(NetEaseMusicBaseIE):
'id': '17241424', 'id': '17241424',
'ext': 'mp3', 'ext': 'mp3',
'title': 'Opus 28', 'title': 'Opus 28',
'upload_date': '20080211', 'upload_date': '20060912',
'timestamp': 1202745600, 'timestamp': 1158076800,
'duration': 263, 'duration': 263,
'thumbnail': r're:^http.*\.jpg', 'thumbnail': r're:^http.*\.jpg',
'album': 'Piano Solos Vol. 2', 'album': 'Piano Solos, Vol. 2',
'album_artist': 'Dustin O\'Halloran', 'album_artist': 'Dustin O\'Halloran',
'average_rating': int, 'average_rating': int,
'description': '[00:05.00]纯音乐,请欣赏\n', 'description': 'md5:b566b92c55ca348df65d206c5d689576',
'album_artists': ['Dustin O\'Halloran'], 'album_artists': ['Dustin O\'Halloran'],
'creators': ['Dustin O\'Halloran'], 'creators': ['Dustin O\'Halloran'],
'subtitles': {'lyrics': [{'ext': 'lrc'}]}, 'subtitles': {'lyrics': [{'ext': 'lrc'}]},
}, },
}, {
'url': 'https://music.163.com/#/song?id=2755669231',
'info_dict': {
'id': '2755669231',
'ext': 'mp3',
'title': '十二月-Departure',
'upload_date': '20251111',
'timestamp': 1762876800,
'duration': 188,
'thumbnail': r're:^http.*\.jpg',
'album': '',
'album_artist': 'ひとひら',
'average_rating': int,
'description': 'md5:deee249c8c9c3e2c54ecdab36e87d174',
'album_artists': ['ひとひら'],
'creators': ['ひとひら'],
'subtitles': {'lyrics': [{'ext': 'lrc'}]},
},
}, { }, {
'url': 'https://y.music.163.com/m/song?app_version=8.8.45&id=95670&uct2=sKnvS4+0YStsWkqsPhFijw%3D%3D&dlt=0846', 'url': 'https://y.music.163.com/m/song?app_version=8.8.45&id=95670&uct2=sKnvS4+0YStsWkqsPhFijw%3D%3D&dlt=0846',
'md5': 'b896be78d8d34bd7bb665b26710913ff', 'md5': 'b896be78d8d34bd7bb665b26710913ff',
@ -241,9 +259,16 @@ class NetEaseMusicIE(NetEaseMusicBaseIE):
'lyrics': [{'data': original, 'ext': 'lrc'}], 'lyrics': [{'data': original, 'ext': 'lrc'}],
} }
lyrics_expr = r'(\[[0-9]{2}:[0-9]{2}\.[0-9]{2,}\])([^\n]+)' def _collect_lyrics(lrc):
original_ts_texts = re.findall(lyrics_expr, original) lyrics_expr = r'\[([0-9]{2}):([0-9]{2})[:\.]([0-9]{2,})\]([^\n]+)'
translation_ts_dict = dict(re.findall(lyrics_expr, translated)) matches = re.findall(lyrics_expr, lrc)
return (
(f'[{mm}:{ss}.{sss}]', text)
for mm, ss, sss, text in matches
)
original_ts_texts = _collect_lyrics(original)
translation_ts_dict = dict(_collect_lyrics(translated))
merged = '\n'.join( merged = '\n'.join(
join_nonempty(f'{timestamp}{text}', translation_ts_dict.get(timestamp, ''), delim=' / ') join_nonempty(f'{timestamp}{text}', translation_ts_dict.get(timestamp, ''), delim=' / ')