Skip to content

AprajitSarkar/anime-old-cartoon-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AnimeVerse - Anime & Cartoon Streaming Website

A modern, React-based streaming website for anime and cartoons with real-time data scraping from watchanimeworld.in. Features include advanced search, category filtering, URL persistence, and a YouTube-style mobile interface.

✨ Features

  • 🎬 Real-time Content: Scrapes anime and cartoon data from watchanimeworld.in
  • 🔍 Advanced Search: YouTube-like search with live suggestions and history
  • 📱 Mobile-Optimized: Expandable search bar and responsive design
  • 🎯 Category Sections: Browse by Franchise, Network, Language
  • 📊 Ranked Shows: Most-watched shows with visual rankings
  • 🆕 Latest Episodes: Newest episode releases
  • 🔗 URL Persistence: Shareable links for searches and categories
  • 🎨 Modern UI: Glassmorphism, smooth animations, dark theme

🚀 Quick Start

Prerequisites

  • Node.js (v14 or higher)
  • npm (v6 or higher)

Installation

  1. Clone the repository
git clone https://github.com/AprajitSarkar/anime-old-cartoon-api.git
cd anime-old-cartoon-api
  1. Install frontend dependencies
npm install
  1. Install backend dependencies
cd server
npm install
cd ..

Running the Application

Option 1: Run Both Servers Separately

  1. Start the backend server (Terminal 1):
cd server
npm run dev

Backend will run on http://localhost:3001

  1. Start the frontend (Terminal 2):
npm run dev

Frontend will run on http://localhost:5173

Option 2: One-Command Start (if configured)

npm run dev
  1. Open in browser: Navigate to http://localhost:5173

📁 Project Structure

anime-old-cartoon-api/
├── server/                    # Backend Express server
│   ├── scrapers/             # Web scraping modules
│   │   ├── homepageScraper.js
│   │   ├── categoryScraper.js
│   │   ├── searchScraper.js
│   │   ├── videoScraper.js
│   │   ├── categorySectionsScraper.js
│   │   └── rankingScraper.js
│   ├── server.js             # Main server file
│   └── package.json
├── src/                      # Frontend React application
│   ├── components/           # React components
│   │   ├── YouTubeHeader.jsx
│   │   ├── VideoFeed.jsx
│   │   ├── VideoPlayer.jsx
│   │   ├── CategoryCarousel.jsx
│   │   ├── RankedShows.jsx
│   │   └── LatestEpisodes.jsx
│   ├── context/             # React Context
│   │   └── VideoContext.jsx
│   ├── data/                # API integration
│   │   └── animeData.js
│   └── main.jsx             # App entry point
├── index.html
├── package.json
└── README.md

🛠️ Technology Stack

Frontend

  • React with Vite
  • Material-UI (@mui/material)
  • Framer Motion (animations)
  • React Router DOM (URL routing)

Backend

  • Node.js with Express
  • Axios (HTTP requests)
  • Cheerio (HTML parsing for scraping)
  • CORS (cross-origin requests)

📡 API Endpoints

Backend Server (http://localhost:3001)

Endpoint Method Description
/api/health GET Server health check
/api/homepage GET Homepage anime list
/api/category/:category GET Filter by category
/api/search GET Search anime (query param: q)
/api/video/:id GET Video details and servers
/api/sections GET Category sections (Franchise, Network, Language)
/api/trending GET Most-watched shows (ranked)
/api/latest-episodes GET Latest episode releases

🎨 Key Features Explained

1. Mobile Expandable Search

  • Collapsed by default on mobile (<600px)
  • Click search icon to expand
  • Back button to collapse
  • Auto-focus on expansion

2. Category Carousels

  • Horizontal scrollable sections
  • Franchise, Network, Language categories
  • Click to filter content

3. URL Persistence

  • Search: ?search=naruto
  • Category: ?category=Movies
  • Shareable links that maintain state

4. Ranked Shows

  • Top 10 most-watched
  • Large rank number overlays
  • Glassmorphism effects

🔧 Configuration

Environment Variables (Optional)

Create a .env file in the root directory:

VITE_API_URL=http://localhost:3001

Create a .env file in the server directory:

PORT=3001
SOURCE_WEBSITE=https://watchanimeworld.in

🌐 Data Source

This project scrapes content from watchanimeworld.in.

Important Notes:

  • This is an educational project demonstrating web scraping techniques
  • All content belongs to the original website and its respective owners
  • The scraping respects the website's structure and doesn't overload servers
  • iframe URLs are cleaned to remove tracking parameters

🙏 Credits

  • Data Source: watchanimeworld.in - All anime and cartoon content
  • Design Inspiration: YouTube mobile interface
  • Icons: Material-UI Icons
  • Animations: Framer Motion

📝 License

This project is for educational purposes only.

  • All scraped content belongs to watchanimeworld.in
  • All anime and cartoon rights belong to their respective owners
  • This code is provided as-is for learning web scraping and React development

🐛 Known Issues

  • Video player may show AdBlock warnings (from iframe sources)
  • Some videos may require disabling browser extensions
  • Scraping depends on source website structure (may break if site updates)

🚧 Future Enhancements

  • Related content sidebar when playing videos
  • User accounts and watch history
  • Offline video downloads
  • Multi-language subtitles
  • PWA (Progressive Web App) support

🤝 Contributing

Contributions welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📧 Contact

For questions or issues, please open a GitHub issue.


Disclaimer: This project is for educational purposes. Please support official anime streaming platforms.

About

React-based anime and cartoon streaming website with real-time scraping from watchanimeworld.in

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages