mirror of
https://github.com/Benexl/FastAnime.git
synced 2025-12-13 08:00:47 -08:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f1c352d4ff | ||
|
|
714533d845 | ||
|
|
56dd25df8d | ||
|
|
8248dc53df | ||
|
|
1a8a187de6 |
105
README.md
105
README.md
@@ -663,8 +663,8 @@ fastanime serve
|
|||||||
# specify host and port
|
# specify host and port
|
||||||
fastanime serve --host <host> --port <port>
|
fastanime serve --host <host> --port <port>
|
||||||
```
|
```
|
||||||
An example instance is hosted by [render](https://fastanime.onrender.com/)
|
|
||||||
|
|
||||||
|
An example instance is hosted by [render](https://fastanime.onrender.com/)
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
@@ -1094,7 +1094,6 @@ Result
|
|||||||
|
|
||||||
**Get anime by id:**
|
**Get anime by id:**
|
||||||
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl 'https://fastanime.onrender.com/anime/8aM5BBoEGLvjG3MZm'
|
curl 'https://fastanime.onrender.com/anime/8aM5BBoEGLvjG3MZm'
|
||||||
```
|
```
|
||||||
@@ -1109,14 +1108,7 @@ Result
|
|||||||
"id": "8aM5BBoEGLvjG3MZm",
|
"id": "8aM5BBoEGLvjG3MZm",
|
||||||
"title": "Sayounara Ryuusei, Konnichiwa Jinsei",
|
"title": "Sayounara Ryuusei, Konnichiwa Jinsei",
|
||||||
"availableEpisodesDetail": {
|
"availableEpisodesDetail": {
|
||||||
"sub": [
|
"sub": ["6", "5", "4", "3", "2", "1"],
|
||||||
"6",
|
|
||||||
"5",
|
|
||||||
"4",
|
|
||||||
"3",
|
|
||||||
"2",
|
|
||||||
"1"
|
|
||||||
],
|
|
||||||
"dub": [],
|
"dub": [],
|
||||||
"raw": []
|
"raw": []
|
||||||
},
|
},
|
||||||
@@ -1205,6 +1197,99 @@ Result
|
|||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
**Get Episode Streams by AniList Id:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl 'https://fastanime.onrender.com/watch/269?episode=1&translation_type=dub'
|
||||||
|
```
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>
|
||||||
|
Results
|
||||||
|
</summary>
|
||||||
|
|
||||||
|
```json
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"server": "gogoanime",
|
||||||
|
"headers": {},
|
||||||
|
"subtitles": [],
|
||||||
|
"episode_title": "Bleach; Episode 1",
|
||||||
|
"links": [
|
||||||
|
{
|
||||||
|
"link": "https://www032.anzeat.pro/streamhls/f643f0c19d5bee9f1c3aed888eee75d6/ep.1.1709258176.m3u8",
|
||||||
|
"hls": true,
|
||||||
|
"mp4": false,
|
||||||
|
"resolutionStr": "hls P",
|
||||||
|
"priority": 3,
|
||||||
|
"quality": "1080"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"link": "https://www032.anicdnstream.info/videos/hls/WEJ7719z_r37wHYpaOsTqQ/1731115258/76805/f643f0c19d5bee9f1c3aed888eee75d6/ep.1.1709258176.m3u8",
|
||||||
|
"hls": true,
|
||||||
|
"mp4": false,
|
||||||
|
"resolutionStr": "HLS1",
|
||||||
|
"priority": 2,
|
||||||
|
"quality": "720"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"link": "https://workfields.maverickki.lol/7d2473746a243c246e727276753c29297171713635342867686f65626875727463676b286f68606929706f62636975296e6a752951434c3131373f7c59743531714e5f76674975527757293731353737373334333e2931303e36332960303235603665373f62336463633f603765356763623e3e3e636363313362302963762837283731363f34333e373130286b35733e242a2476677475634e6a75243c727473632a2462677263243c373135373634363236363636367b",
|
||||||
|
"hls": true,
|
||||||
|
"resolutionStr": "Alt",
|
||||||
|
"src": "https://workfields.maverickki.lol/7d2473746a243c246e727276753c29297171713635342867686f65626875727463676b286f68606929706f62636975296e6a752951434c3131373f7c59743531714e5f76674975527757293731353737373334333e2931303e36332960303235603665373f62336463633f603765356763623e3e3e636363313362302963762837283731363f34333e373130286b35733e242a2476677475634e6a75243c727473632a2462677263243c373135373634363236363636367b",
|
||||||
|
"priority": 1,
|
||||||
|
"quality": "480"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"server": "Yt",
|
||||||
|
"episode_title": "Bleach; Episode 1",
|
||||||
|
"headers": {
|
||||||
|
"Referer": "https://allanime.day/"
|
||||||
|
},
|
||||||
|
"subtitles": [],
|
||||||
|
"links": [
|
||||||
|
{
|
||||||
|
"link": "https://tools.fast4speed.rsvp//media3/videos/XqKvkSEty5koms32i/dub/1",
|
||||||
|
"quality": "1080"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"server": "wixmp",
|
||||||
|
"headers": {},
|
||||||
|
"subtitles": [],
|
||||||
|
"episode_title": "Bleach; Episode 1",
|
||||||
|
"links": [
|
||||||
|
{
|
||||||
|
"link": "https://repackager.wixmp.com/video.wixstatic.com/video/eba0c8_706b389e50f94fe5bf8c72e2f10c545e/,720p,480p,/mp4/file.mp4.urlset/master.m3u8",
|
||||||
|
"hls": true,
|
||||||
|
"resolutionStr": "Hls",
|
||||||
|
"quality": "1080"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"server": "sharepoint",
|
||||||
|
"headers": {},
|
||||||
|
"subtitles": [],
|
||||||
|
"episode_title": "Bleach; Episode 1",
|
||||||
|
"links": [
|
||||||
|
{
|
||||||
|
"link": "https://myanime.sharepoint.com/sites/anime/_layouts/15/download.aspx?share=EaNJF1eTtptGovmPAcR3_7QBH1gFepgMcBpL5YfyEM5Uhw",
|
||||||
|
"mp4": true,
|
||||||
|
"resolutionStr": "Mp4",
|
||||||
|
"src": "https://myanime.sharepoint.com/sites/anime/_layouts/15/download.aspx?share=EaNJF1eTtptGovmPAcR3_7QBH1gFepgMcBpL5YfyEM5Uhw",
|
||||||
|
"quality": "1080"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
### MPV specific commands
|
### MPV specific commands
|
||||||
|
|
||||||
The project now allows on the fly media controls directly from mpv. This means you can go to the next or previous episode without the window ever closing thus offering a seamless experience.
|
The project now allows on the fly media controls directly from mpv. This means you can go to the next or previous episode without the window ever closing thus offering a seamless experience.
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ if sys.version_info < (3, 10):
|
|||||||
) # noqa: F541
|
) # noqa: F541
|
||||||
|
|
||||||
|
|
||||||
__version__ = "v2.7.1"
|
__version__ = "v2.7.2"
|
||||||
|
|
||||||
APP_NAME = "FastAnime"
|
APP_NAME = "FastAnime"
|
||||||
AUTHOR = "Benex254"
|
AUTHOR = "Benex254"
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ from ..constants import (
|
|||||||
USER_DATA_PATH,
|
USER_DATA_PATH,
|
||||||
USER_VIDEOS_DIR,
|
USER_VIDEOS_DIR,
|
||||||
USER_WATCH_HISTORY_PATH,
|
USER_WATCH_HISTORY_PATH,
|
||||||
|
S_PLATFORM
|
||||||
)
|
)
|
||||||
from ..libs.rofi import Rofi
|
from ..libs.rofi import Rofi
|
||||||
|
|
||||||
@@ -40,8 +41,8 @@ class Config(object):
|
|||||||
"force_window": "immediate",
|
"force_window": "immediate",
|
||||||
"format": "best[height<=1080]/bestvideo[height<=1080]+bestaudio/best",
|
"format": "best[height<=1080]/bestvideo[height<=1080]+bestaudio/best",
|
||||||
"icons": "false",
|
"icons": "false",
|
||||||
"image_previews": "true",
|
"image_previews": "True" if S_PLATFORM != "win32" else "False",
|
||||||
"normalize_titles": "true",
|
"normalize_titles": "True",
|
||||||
"notification_duration": "2",
|
"notification_duration": "2",
|
||||||
"player": "mpv",
|
"player": "mpv",
|
||||||
"preferred_history": "local",
|
"preferred_history": "local",
|
||||||
|
|||||||
@@ -1591,6 +1591,8 @@ def fastanime_main_menu(
|
|||||||
else:
|
else:
|
||||||
config.load_config()
|
config.load_config()
|
||||||
|
|
||||||
|
config.set_fastanime_config_environs()
|
||||||
|
|
||||||
config.anime_provider.provider = config.provider
|
config.anime_provider.provider = config.provider
|
||||||
config.anime_provider.lazyload_provider(config.provider)
|
config.anime_provider.lazyload_provider(config.provider)
|
||||||
|
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ def save_image_from_url(url: str, file_name: str):
|
|||||||
file_name: filename to use
|
file_name: filename to use
|
||||||
"""
|
"""
|
||||||
image = requests.get(url)
|
image = requests.get(url)
|
||||||
with open(f"{IMAGES_CACHE_DIR}/{file_name}.png", "wb") as f:
|
with open(os.path.join(IMAGES_CACHE_DIR,f"{file_name}.png"), "wb") as f:
|
||||||
f.write(image.content)
|
f.write(image.content)
|
||||||
|
|
||||||
|
|
||||||
@@ -76,7 +76,7 @@ def save_info_from_str(info: str, file_name: str):
|
|||||||
info: the information anilist has on the anime
|
info: the information anilist has on the anime
|
||||||
file_name: the filename to use
|
file_name: the filename to use
|
||||||
"""
|
"""
|
||||||
with open(f"{ANIME_INFO_CACHE_DIR}/{file_name}", "w") as f:
|
with open(os.path.join(ANIME_INFO_CACHE_DIR,file_name,), "w",encoding="utf-8") as f:
|
||||||
f.write(info)
|
f.write(info)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "fastanime"
|
name = "fastanime"
|
||||||
version = "2.7.1"
|
version = "2.7.2"
|
||||||
description = "A browser anime site experience from the terminal"
|
description = "A browser anime site experience from the terminal"
|
||||||
license = "UNLICENSE"
|
license = "UNLICENSE"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
|||||||
Reference in New Issue
Block a user