mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	[ie/vimeo] Fix chapters extraction (#10544)
Closes #5308 Authored by: bashonly
This commit is contained in:
		| @@ -212,16 +212,6 @@ class VimeoBaseInfoExtractor(InfoExtractor): | ||||
|         owner = video_data.get('owner') or {} | ||||
|         video_uploader_url = owner.get('url') | ||||
| 
 | ||||
|         duration = int_or_none(video_data.get('duration')) | ||||
|         chapter_data = try_get(config, lambda x: x['embed']['chapters']) or [] | ||||
|         chapters = [{ | ||||
|             'title': current_chapter.get('title'), | ||||
|             'start_time': current_chapter.get('timecode'), | ||||
|             'end_time': next_chapter.get('timecode'), | ||||
|         } for current_chapter, next_chapter in zip(chapter_data, chapter_data[1:] + [{'timecode': duration}])] | ||||
|         if chapters and chapters[0]['start_time']:  # Chapters may not start from 0 | ||||
|             chapters[:0] = [{'title': '<Untitled>', 'start_time': 0, 'end_time': chapters[0]['start_time']}] | ||||
| 
 | ||||
|         return { | ||||
|             'id': str_or_none(video_data.get('id')) or video_id, | ||||
|             'title': video_title, | ||||
| @@ -229,8 +219,12 @@ class VimeoBaseInfoExtractor(InfoExtractor): | ||||
|             'uploader_id': video_uploader_url.split('/')[-1] if video_uploader_url else None, | ||||
|             'uploader_url': video_uploader_url, | ||||
|             'thumbnails': thumbnails, | ||||
|             'duration': duration, | ||||
|             'chapters': chapters or None, | ||||
|             'duration': int_or_none(video_data.get('duration')), | ||||
|             'chapters': sorted(traverse_obj(config, ( | ||||
|                 'embed', 'chapters', lambda _, v: int(v['timecode']) is not None, { | ||||
|                     'title': ('title', {str}), | ||||
|                     'start_time': ('timecode', {int_or_none}), | ||||
|                 })), key=lambda c: c['start_time']) or None, | ||||
|             'formats': formats, | ||||
|             'subtitles': subtitles, | ||||
|             'live_status': live_status, | ||||
| @@ -708,6 +702,39 @@ class VimeoIE(VimeoBaseInfoExtractor): | ||||
|                 'skip_download': True, | ||||
|             }, | ||||
|         }, | ||||
|         { | ||||
|             # chapters must be sorted, see: https://github.com/yt-dlp/yt-dlp/issues/5308 | ||||
|             'url': 'https://player.vimeo.com/video/756714419', | ||||
|             'info_dict': { | ||||
|                 'id': '756714419', | ||||
|                 'ext': 'mp4', | ||||
|                 'title': 'Dr Arielle Schwartz - Therapeutic yoga for optimum sleep', | ||||
|                 'uploader': 'Alex Howard', | ||||
|                 'uploader_id': 'user54729178', | ||||
|                 'uploader_url': 'https://vimeo.com/user54729178', | ||||
|                 'thumbnail': r're:https://i\.vimeocdn\.com/video/1520099929-[\da-f]+-d_1280', | ||||
|                 'duration': 2636, | ||||
|                 'chapters': [ | ||||
|                     {'start_time': 0, 'end_time': 10, 'title': '<Untitled Chapter 1>'}, | ||||
|                     {'start_time': 10, 'end_time': 106, 'title': 'Welcoming Dr Arielle Schwartz'}, | ||||
|                     {'start_time': 106, 'end_time': 305, 'title': 'What is therapeutic yoga?'}, | ||||
|                     {'start_time': 305, 'end_time': 594, 'title': 'Vagal toning practices'}, | ||||
|                     {'start_time': 594, 'end_time': 888, 'title': 'Trauma and difficulty letting go'}, | ||||
|                     {'start_time': 888, 'end_time': 1059, 'title': "Dr Schwartz' insomnia experience"}, | ||||
|                     {'start_time': 1059, 'end_time': 1471, 'title': 'A strategy for helping sleep issues'}, | ||||
|                     {'start_time': 1471, 'end_time': 1667, 'title': 'Yoga nidra'}, | ||||
|                     {'start_time': 1667, 'end_time': 2121, 'title': 'Wisdom in stillness'}, | ||||
|                     {'start_time': 2121, 'end_time': 2386, 'title': 'What helps us be more able to let go?'}, | ||||
|                     {'start_time': 2386, 'end_time': 2510, 'title': 'Practical tips to help ourselves'}, | ||||
|                     {'start_time': 2510, 'end_time': 2636, 'title': 'Where to find out more'}, | ||||
|                 ], | ||||
|             }, | ||||
|             'params': { | ||||
|                 'http_headers': {'Referer': 'https://sleepsuperconference.com'}, | ||||
|                 'skip_download': 'm3u8', | ||||
|             }, | ||||
|             'expected_warnings': ['Failed to parse XML: not well-formed'], | ||||
|         }, | ||||
|         { | ||||
|             # user playlist alias -> https://vimeo.com/258705797 | ||||
|             'url': 'https://vimeo.com/user26785108/newspiritualguide', | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 bashonly
					bashonly