-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
saya mengganti script pada baris 157 yaitu fungsi get_video_data dengan script ini :
def get_video_data(self, url):
if not url:
return {'status': False, 'message': 'URL is required'}
if not url.startswith(self.BASE_WEB_URL):
return {'status': False, 'message': 'Invalid URL'}
request = self.request.get(url=url)
if request.status_code != 200:
return {'status': False, 'message': 'Failed to get video page'}
bs = BeautifulSoup(request.text, 'html.parser')
# ----------------------------------------------------------------------
# 1. GET VIDEO ID (fallback untuk episode / tvseries)
# ----------------------------------------------------------------------
meta_postid = bs.find('meta', {'id': 'dooplay-ajax-counter'})
if not meta_postid:
# Fallback lain: some themes use data-post-id
post_id_holder = bs.find(attrs={'data-postid': True})
if post_id_holder:
self.video_id = post_id_holder['data-postid']
else:
return {'status': False, 'message': 'Video ID not found'}
else:
self.video_id = meta_postid.get('data-postid')
# ----------------------------------------------------------------------
# 2. GET TITLE (ROBUST)
# ----------------------------------------------------------------------
video_name = None
# Try itemprop="name" (movie)
meta_name = bs.find('meta', {'itemprop': 'name'})
if meta_name:
video_name = meta_name.get('content')
# Try og:title (episodes)
if not video_name:
og_title = bs.find('meta', {'property': 'og:title'})
if og_title:
video_name = og_title.get('content')
# Try title tag
if not video_name and bs.title:
video_name = bs.title.text
# Try h1
if not video_name:
h1 = bs.find('h1')
if h1:
video_name = h1.get_text(strip=True)
# Last fallback
if not video_name:
video_name = "Unknown_Title"
self.video_name = unquote(video_name)
# ----------------------------------------------------------------------
# 3. GET POSTER (fallbacks)
# ----------------------------------------------------------------------
poster = None
itemprop_img = bs.find('img', {'itemprop': 'image'})
if itemprop_img:
poster = itemprop_img.get('src')
if not poster:
og_image = bs.find('meta', {'property': 'og:image'})
if og_image:
poster = og_image.get('content')
if not poster:
poster = ""
self.poster = poster
# DONE
return {
'status': True,
'video_id': self.video_id,
'video_name': self.video_name,
'poster': self.poster
}
gambar error, sebelum mengganti script :
setelah mengganti script :

Metadata
Metadata
Assignees
Labels
No labels