Skip to content
This repository was archived by the owner on Feb 16, 2024. It is now read-only.

Commit

Permalink
Fixed AnimeDex Servers & Updated Video Player
Browse files Browse the repository at this point in the history
  • Loading branch information
TechShreyash committed Feb 7, 2023
1 parent a960b40 commit 99be679
Show file tree
Hide file tree
Showing 5 changed files with 69 additions and 88 deletions.
17 changes: 6 additions & 11 deletions app.py
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ def get_episode(anime, episode):
ep_list = get_eps_html2(ep)

aid = ep[episode-1].split('-episode-')[0]
print(eps)

btn_html = get_selector_btns(
f"/episode/{anime}/", int(episode), int(total_eps))
Expand Down Expand Up @@ -176,27 +177,21 @@ def search_anime():
def get_embed():
url = request.args.get('url')
if url:
if 'gogohd' in url:
if 'playgo1.cc' in url:
if request.args.get('token'):
url += f'&token={request.args.get("token")}'
if request.args.get('expires'):
url += f'&expires={request.args.get("expires")}'
file = extract_m3u8(url)
elif '.mp4' in url or '.mkv' in url:
file = url
else:
file = request.args.get('file')
else:
file = request.args.get('file')
if not file:
return redirect(url)
sub = request.args.get('sub')
title = request.args.get('title')
if sub != None:
track = """tracks: [{"kind": "captions", file: "sopu", label: 'English', "default": true}],""".replace(
'sopu', sub)
else:
track = ''

return render_template('vid.min.html', m3u8=file, title=title).replace('TRACKS', track)
return render_template('vid.html', m3u8=file, title=title)


@app.route('/api/latest/<page>')
Expand All @@ -206,4 +201,4 @@ def latest(page):
html = get_html(data)
return {'html': html}
except:
return {'html': ''}
return {'html': ''}
15 changes: 5 additions & 10 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ def get_episode(anime, episode):
ep_list = get_eps_html2(ep)

aid = ep[episode-1].split('-episode-')[0]
print(eps)

btn_html = get_selector_btns(
f"/episode/{anime}/", int(episode), int(total_eps))
Expand Down Expand Up @@ -176,27 +177,21 @@ def search_anime():
def get_embed():
url = request.args.get('url')
if url:
if 'gogohd' in url:
if 'playgo1.cc' in url:
if request.args.get('token'):
url += f'&token={request.args.get("token")}'
if request.args.get('expires'):
url += f'&expires={request.args.get("expires")}'
file = extract_m3u8(url)
elif '.mp4' in url or '.mkv' in url:
file = url
else:
file = request.args.get('file')
else:
file = request.args.get('file')
if not file:
return redirect(url)
sub = request.args.get('sub')
title = request.args.get('title')
if sub != None:
track = """tracks: [{"kind": "captions", file: "sopu", label: 'English', "default": true}],""".replace(
'sopu', sub)
else:
track = ''

return render_template('vid.min.html', m3u8=file, title=title).replace('TRACKS', track)
return render_template('vid.html', m3u8=file, title=title)


@app.route('/api/latest/<page>')
Expand Down
8 changes: 4 additions & 4 deletions programs/gogo.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ def __init__(self, url, img, lang, title, episode) -> None:

class GoGoApi:
def __init__(self) -> None:
self.host = 'gogoanime.bid'
self.host = 'www1.gogoanime.bid'

def search(self, query, url_only=False):
soup = bs(requests.get(
Expand Down Expand Up @@ -144,11 +144,11 @@ def get_links(self, url):
embeds.append(url)
dlink = soup.find('li', 'dowloads').find('a').get('href')
if 'dub' in anime:
data['DUB'] = embeds[1:]
data['DUB'] = embeds
data['DL'] = {}
data['DL']['DUB'] = dlink
else:
data['SUB'] = embeds[1:]
data['SUB'] = embeds
data['DL'] = {}
data['DL']['SUB'] = dlink
anime = anime.split(
Expand All @@ -175,7 +175,7 @@ def get_links(self, url):
embeds.append(url)

dlink = soup.find('li', 'dowloads').find('a').get('href')
data['DUB'] = embeds[1:]
data['DUB'] = embeds
data['DL']['DUB'] = dlink
return data
return data
116 changes: 54 additions & 62 deletions templates/vid.html
Original file line number Diff line number Diff line change
@@ -1,88 +1,80 @@
<!DOCTYPE html>

<html lang="en">

<head>
<link rel="icon" type="image/x-icon"
href="https://cdn.jsdelivr.net/gh/TechShreyash/AnimeDex@main/static/img/favicon.ico">
<link rel="icon" type="image/x-icon" href="https://cdn.jsdelivr.net/gh/TechShreyash/AnimeDex@main/static/img/favicon.ico">
<title>AnimeDex VideoPlayer</title>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src='https://cdn.jsdelivr.net/gh/TechShreyash/AnimeDex@main/static/js/player.min.js'></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/TechShreyash/AnimeDex@main/static/css/video.min.css">

<style type="text/css">
body {
background-color: #000;
}

#player {
position: absolute;
width: 100% !important;
height: 100% !important;

.container {
width: 100%;
height: 100%;
}

video {
width: 100%;
height: 100%;
}
</style>

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/plyr@3/dist/plyr.css">
<script src="https://cdn.jsdelivr.net/npm/plyr@3/dist/plyr.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/hls.js"></script>
<script src="https://unpkg.com/plyr@3"></script>
</head>

<body>
<div id="player"></div>

<script type="text/javascript">
const playerInstance = jwplayer("player");
playerInstance.setup({
title: "{{ title }}",
description: "You're Watching",
file: "{{ m3u8 }}",
label: "hls P",
image: "https://cdn.jsdelivr.net/gh/TechShreyash/AnimeDex@main/static/img/cover.jpg",
TRACKS
autostart: false,
abouttext: "AnimeDex",
aboutlink: "/",
logo: {
file: "https://cdn.jsdelivr.net/gh/TechShreyash/AnimeDex@main/static/img/headerr.png"
},
skin: {
name: "netflix"
},
displaytitle: true,
displaydescription: true,
stretching: 'fill',
height: '100%',
width: '100%'
});
<div class="container">
<video controls crossorigin playsinline>
<source type="application/x-mpegURL" src="{{ m3u8 }}">
</video>
</div>

let player_url = "{{ m3u8 }}";
player = playerInstance;
player.on('error', function () {
debounce = setTimeout(function () {
if (errors < 5) {
errors += 1;
isRun = false;
player.load([{
file: player_url
}]);
player.play();
}
}.bind(this), 1000);
}.bind(this));
<script>
const source = '{{ m3u8 }}';
document.addEventListener("DOMContentLoaded", () => {
const video = document.querySelector("video");

let position = 0;
let isRun = true;
let errors = 0;
const defaultOptions = {
title: '{{ title }}'
};

player.on('firstFrame', function () {
player.seek(position);
isRun = true;
});
if (Hls.isSupported()) {
const hls = new Hls();
hls.loadSource(source);
hls.on(Hls.Events.MANIFEST_PARSED, function(event, data) {
const availableQualities = hls.levels.map((l) => l.height);

function saveDur() {
if (isRun == true) {
position = parseInt(this.player.getPosition());
setTimeout(saveDur, 1000);
defaultOptions.quality = {
default: availableQualities[0],
options: availableQualities,
forced: true,
onChange: (e) => updateQuality(e),
};
const player = new Plyr(video, defaultOptions);
});
hls.attachMedia(video);
window.hls = hls;
} else {
const player = new Plyr(video, defaultOptions);
};

function updateQuality(newQuality) {
window.hls.levels.forEach((level, levelIndex) => {
if (level.height === newQuality) {
window.hls.currentLevel = levelIndex;
}
});
}
};
saveDur();
});
</script>
</body>

Expand Down
1 change: 0 additions & 1 deletion templates/vid.min.html

This file was deleted.

1 comment on commit 99be679

@vercel
Copy link

@vercel vercel bot commented on 99be679 Feb 7, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Successfully deployed to the following URLs:

anime-dex – ./

anime-dex-git-main-techshreyash.vercel.app
anime-dex-techshreyash.vercel.app
anime-dex1.vercel.app

Please sign in to comment.