Otakuapuri is a manga downloader and anime streaming application that provides an easy and convenient platform for manga and anime enthusiasts. Users can download their favorite manga in PDF format and stream their favorite anime series.
The site sushiscan.net has set up a protection via Cloudflare to block the scrapers robots (non-human user)
Impossible to download images / pages of a manga via the module cfscrape or cloudscraper which are supposed to bypass the Cloudflare challenge because it is the v2
Some methods are possible:
connect via a proxy
try to solve the challenge by sending a request with a header containing a cookie that has the variables cf_clearance and cf_chl2.
use an undetected embedded browser undetected_chromedriver but requires xvfb to be invisible (not compatible with Windows)
use an integrated browser like pywebview / tkwebview2 but impossible to download images only look at them.
Downloading an anime with the youtube-dl library does not start when the executable generated by pyinstaller has the console mode disabled (console=False in App.spec)
This is because youtube-dl uses the standard output to display information about downloads and the standard output is redirected to the console when the console parameter is set to True.
Solution
We can use youtube-dl by redirecting the output to a file using the Logger method
We will write the download information directly to a temporary file youtube-dl.log. This way we can leave the console attribute at False.
Chat with a character via the codec of metal gear solid
UI having aspect of the codec introduced in the game Metal Gear Solid
Sound effect (call sound)
The user has the choice to ask questions to the character according to different themes (evolution, adventure, hobbies, relationships with other characters...)
The data extracted from the sushi scan site is not up-to-date in the application. Indeed, they are stored in a sql file which is not up to date. No function has been implemented to update the relational database.
Solution:
Create a data pipeline ETL or EL, using Apache Airflow, which will extract and load the data from the sushi-scan site into a MongoDB database (collection). Then, generate an access to the Data API that MongoDB
Signature of the .exe with a digital certificate so that the anti-virus does not block the launching of the application and does not consider it as a virus
Currently no key is binded to the video player (pause, play, forward, backward, full screen...)
When we associated keys, this binding was still present in the other pages
for example, the F key is associated with full screen, so when we were searching a serie's title that contained an F, the application went to full screen.
Solution
Unbind all keys when the user leaves the video player (SerieFrame)
Author Page : if the user clicks on the author of a series, he will be redirected to a page where there will be information about the author and all the works he has created or participated in
Ranking Page : a button will be present in the search page to display the ranking (top 50 for example) of top mangas according to myanimelist.net
Search Page : numbers/stats concerning the local database (sqlite) will be present in the search page (e.g.: total number of series, total number of volumes, ...)
Thanks to the fabulous tkwebview2 library, you can integrate parts of any website into a Tkinter application (like an HTML iframe).
In the site that broadcasts the animations, it uses iframes.
An inline frame (iframe) is a HTML element that loads another HTML page within the document. It essentially puts another webpage within the parent page.
It stores virtually no video. It simply integrates video players from various sites that host these videos.
When extracting the videos (Webscraping ETL), we take the url of the original video player located in the src attribute of the iframes so that we can directly load the video player into the tkinter application via the tkwebview2 library.
Allow the user to play videos like on Youtube. A design accordingly will be proposed to resemble as much as possible the Youtube platform.
I found a playlist of more than 1000 videos with openings / endings of anime.
It is proposed by the channel Crunchyroll on Youtube.
The pytube library is essential to get information about the videos + download them one by one.
The python-vlc library allows to use the vlc player directly in the TKinter application.
To connect to his profile or to create one, the user must provide a valid e-mail address (respecting the conventional format and not exceeding a length of 62 characters).
Step 3 : enter the verification / authentification code
Once the address has been entered and validated, to authenticate, the user must enter the 6-digit numerical code sent to his e-mail address.