AddAnime.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import re
  2. from .common import InfoExtractor
  3. from ..utils import (
  4. ExtractorError,
  5. )
  6. from bs4 import BeautifulSoup
  7. class AddAnimeIE(InfoExtractor):
  8. _VALID_URL = r'^(?:http?://)?(?:\w+\.)?add-anime\.net/watch_video.php\?(?:.*?)v=(?P<video_id>[\w_]+)(?:.*)'
  9. IE_NAME = u'AddAnime'
  10. _TEST = {
  11. u'url': u'http://www.add-anime.net/watch_video.php?v=24MR3YO5SAS9',
  12. u'file': u'137499050692ced.flv',
  13. u'md5': u'0813c2430bea7a46bf13acf3406992f4',
  14. u'info_dict': {
  15. u"description": u"One Piece 606",
  16. u"uploader": u"mugiwaraQ8",
  17. u"title": u"One Piece 606"
  18. }
  19. }
  20. def _real_extract(self, url):
  21. mobj = re.match(self._VALID_URL, url)
  22. if mobj is None:
  23. raise ExtractorError(u'Invalid URL: %s' % url)
  24. video_id = mobj.group('video_id')
  25. webpage = self._download_webpage(url, video_id)
  26. video_url = self._search_regex(r'var normal_video_file = "(.*?)",',
  27. webpage, u'video URL')
  28. video_title = self._og_search_title(webpage)
  29. video_description = self._og_search_description(webpage)
  30. soup = BeautifulSoup(webpage)
  31. video_uploader= soup.find("meta", {"author":""})['content']
  32. info = {
  33. 'id': video_id,
  34. 'url': video_url,
  35. 'ext': 'flv',
  36. 'title': video_title,
  37. 'description': video_description,
  38. 'uploader': video_uploader
  39. }
  40. return [info]