beatbump.py 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. from .common import InfoExtractor
  2. from .youtube import YoutubeIE, YoutubeTabIE
  3. class BeatBumpVideoIE(InfoExtractor):
  4. _VALID_URL = r'https?://beatbump\.(?:ml|io)/listen\?id=(?P<id>[\w-]+)'
  5. _TESTS = [{
  6. 'url': 'https://beatbump.ml/listen?id=MgNrAu2pzNs',
  7. 'md5': '5ff3fff41d3935b9810a9731e485fe66',
  8. 'info_dict': {
  9. 'id': 'MgNrAu2pzNs',
  10. 'ext': 'mp4',
  11. 'artist': 'Stephen',
  12. 'thumbnail': 'https://i.ytimg.com/vi_webp/MgNrAu2pzNs/maxresdefault.webp',
  13. 'channel_url': 'https://www.youtube.com/channel/UC-pWHpBjdGG69N9mM2auIAA',
  14. 'upload_date': '20190312',
  15. 'categories': ['Music'],
  16. 'playable_in_embed': True,
  17. 'duration': 169,
  18. 'like_count': int,
  19. 'alt_title': 'Voyeur Girl',
  20. 'view_count': int,
  21. 'track': 'Voyeur Girl',
  22. 'uploader': 'Stephen',
  23. 'title': 'Voyeur Girl',
  24. 'channel_follower_count': int,
  25. 'age_limit': 0,
  26. 'availability': 'public',
  27. 'live_status': 'not_live',
  28. 'album': 'it\'s too much love to know my dear',
  29. 'channel': 'Stephen',
  30. 'comment_count': int,
  31. 'description': 'md5:7ae382a65843d6df2685993e90a8628f',
  32. 'tags': 'count:11',
  33. 'creator': 'Stephen',
  34. 'channel_id': 'UC-pWHpBjdGG69N9mM2auIAA',
  35. 'channel_is_verified': True,
  36. 'heatmap': 'count:100',
  37. },
  38. }, {
  39. 'url': 'https://beatbump.io/listen?id=LDGZAprNGWo',
  40. 'only_matching': True,
  41. }]
  42. def _real_extract(self, url):
  43. id_ = self._match_id(url)
  44. return self.url_result(f'https://music.youtube.com/watch?v={id_}', YoutubeIE, id_)
  45. class BeatBumpPlaylistIE(InfoExtractor):
  46. _VALID_URL = r'https?://beatbump\.(?:ml|io)/(?:release\?id=|artist/|playlist/)(?P<id>[\w-]+)'
  47. _TESTS = [{
  48. 'url': 'https://beatbump.ml/release?id=MPREb_gTAcphH99wE',
  49. 'playlist_count': 50,
  50. 'info_dict': {
  51. 'id': 'OLAK5uy_l1m0thk3g31NmIIz_vMIbWtyv7eZixlH0',
  52. 'availability': 'unlisted',
  53. 'view_count': int,
  54. 'title': 'Album - Royalty Free Music Library V2 (50 Songs)',
  55. 'description': '',
  56. 'tags': [],
  57. 'modified_date': '20231110',
  58. },
  59. 'expected_warnings': ['YouTube Music is not directly supported'],
  60. }, {
  61. 'url': 'https://beatbump.ml/artist/UC_aEa8K-EOJ3D6gOs7HcyNg',
  62. 'playlist_mincount': 1,
  63. 'params': {'flatplaylist': True},
  64. 'info_dict': {
  65. 'id': 'UC_aEa8K-EOJ3D6gOs7HcyNg',
  66. 'uploader_url': 'https://www.youtube.com/@NoCopyrightSounds',
  67. 'channel_url': 'https://www.youtube.com/channel/UC_aEa8K-EOJ3D6gOs7HcyNg',
  68. 'uploader_id': '@NoCopyrightSounds',
  69. 'channel_follower_count': int,
  70. 'title': 'NoCopyrightSounds',
  71. 'uploader': 'NoCopyrightSounds',
  72. 'description': 'md5:cd4fd53d81d363d05eee6c1b478b491a',
  73. 'channel': 'NoCopyrightSounds',
  74. 'tags': 'count:65',
  75. 'channel_id': 'UC_aEa8K-EOJ3D6gOs7HcyNg',
  76. 'channel_is_verified': True,
  77. },
  78. 'expected_warnings': ['YouTube Music is not directly supported'],
  79. }, {
  80. 'url': 'https://beatbump.ml/playlist/VLPLRBp0Fe2GpgmgoscNFLxNyBVSFVdYmFkq',
  81. 'playlist_mincount': 1,
  82. 'params': {'flatplaylist': True},
  83. 'info_dict': {
  84. 'id': 'PLRBp0Fe2GpgmgoscNFLxNyBVSFVdYmFkq',
  85. 'uploader_url': 'https://www.youtube.com/@NoCopyrightSounds',
  86. 'description': 'Providing you with copyright free / safe music for gaming, live streaming, studying and more!',
  87. 'view_count': int,
  88. 'channel_url': 'https://www.youtube.com/channel/UC_aEa8K-EOJ3D6gOs7HcyNg',
  89. 'uploader_id': '@NoCopyrightSounds',
  90. 'title': 'NCS : All Releases 💿',
  91. 'uploader': 'NoCopyrightSounds',
  92. 'availability': 'public',
  93. 'channel': 'NoCopyrightSounds',
  94. 'tags': [],
  95. 'modified_date': '20231112',
  96. 'channel_id': 'UC_aEa8K-EOJ3D6gOs7HcyNg',
  97. },
  98. 'expected_warnings': ['YouTube Music is not directly supported'],
  99. }, {
  100. 'url': 'https://beatbump.io/playlist/VLPLFCHGavqRG-q_2ZhmgU2XB2--ZY6irT1c',
  101. 'only_matching': True,
  102. }]
  103. def _real_extract(self, url):
  104. id_ = self._match_id(url)
  105. return self.url_result(f'https://music.youtube.com/browse/{id_}', YoutubeTabIE, id_)