2.1 KiB
2.1 KiB
Crunchyroll Watchlist
A polished, Streamlit-based dashboard for viewing and managing your Crunchyroll watchlist. This project provides a custom-styled interface with category-based grouping and interactive carousels.
Project Overview
- Purpose: Provide an enhanced visual interface for the Crunchyroll watchlist using the Crunchyroll API.
- Main Technologies:
- Key Features:
- OAuth2 Authentication with Crunchyroll.
- Custom CSS for a dark-themed, "Netflix-style" UI.
- Category-based sorting (Action, Adventure, Comedy, etc.).
- Interactive row carousels for series navigation.
Building and Running
Using Docker (Recommended)
The project is fully containerized for easy deployment.
-
Build the image:
docker build -t crunchyroll-watchlist . -
Run the container:
docker run -p 8501:8501 \ -e CR_EMAIL="your-email@example.com" \ -e CR_PASSWORD="your-password" \ crunchyroll-watchlistAccess the app at
http://localhost:8501. If environment variables are provided, the app will attempt to log in automatically.
Local Development
-
Install dependencies:
pip install streamlit requests -
Run the application:
streamlit run crunchyroll_watchlist.py
Development Conventions
- Frontend: Custom styling is handled via
st.markdownwithunsafe_allow_html=True. - Components: Complex interactive elements (like the carousel) are implemented using Streamlit HTML components (
components.html). - State Management: Uses
st.session_stateto manage authentication tokens and account data. - Caching: API calls are cached using
st.cache_datato improve performance and reduce API load.
Project Structure
crunchyroll_watchlist.py: The main application logic, including authentication, API interaction, and UI rendering.Dockerfile: Configuration for building the project as a container.