A modern web interface for watching anime, built as a web version of the popular ani-cli tool. Stream anime directly in your browser with a clean, responsive interface.
- 🔍 Smart Search: Search anime by title with real-time results
- 🎭 Dual Audio Support: Choose between subtitled (SUB) and dubbed (DUB) versions
- 📱 Responsive Design: Works seamlessly on desktop, tablet, and mobile devices
- 🎬 Integrated Player: Built-in HTML5 video player with subtitle support
- 🚀 Fast Loading: Optimized for quick episode loading and playback
- 🌐 No Installation Required: Just open in your browser and start watching
- Fork this repository to your GitHub account
- Deploy your Cloudflare Worker (see instructions below)
- Update the API proxy URL in
index.html:const API_PROXY = 'https://your-worker.your-subdomain.workers.dev';
- Enable GitHub Pages:
- Go to your repository settings
- Scroll to "Pages" section
- Select "Deploy from a branch" → "main" → "/ (root)"
- Your site will be available at
https://yourusername.github.io/ani-cli-web
-
Clone the repository:
git clone https://github.com/yourusername/ani-cli-web.git cd ani-cli-web -
Deploy Cloudflare Worker (see instructions below)
-
Update API proxy URL in
index.html -
Serve the files:
# Using Python python -m http.server 8000 # Using Node.js npx serve . # Using PHP php -S localhost:8000
-
Open
http://localhost:8000in your browser
The Cloudflare Worker acts as a CORS proxy and implements the video source fetching logic from ani-cli.
- A Cloudflare account (free tier works)
- Node.js installed on your machine
- Wrangler CLI tool
-
Install Wrangler CLI:
npm install -g wrangler
-
Login to Cloudflare:
wrangler login
-
Deploy the Worker:
# From the project directory wrangler publish -
Copy your Worker URL: After deployment, you'll see something like:
Published ani-cli-web-proxy (1.0) https://ani-cli-web-proxy.your-subdomain.workers.dev -
Update
index.html: Replace the API_PROXY constant with your Worker URL:const API_PROXY = 'https://ani-cli-web-proxy.your-subdomain.workers.dev';
For a cleaner URL, you can set up a custom domain:
- Add a custom domain in Cloudflare Workers dashboard
- Update the API_PROXY in
index.htmlto use your custom domain - Configure DNS if using your own domain
You can customize the worker behavior by setting these variables in wrangler.toml:
[vars]
ALLANIME_API = "https://api.allanime.to"
USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"-
Start the Worker locally:
wrangler dev
This starts the worker at
http://localhost:8787 -
Update API_PROXY in
index.htmlfor local development:const API_PROXY = 'http://localhost:8787';
-
Serve the frontend:
python -m http.server 8000
ani-cli-web/
├── index.html # Main web interface
├── worker.js # Cloudflare Worker (CORS proxy + video fetching)
├── wrangler.toml # Worker configuration
├── README.md # This file
└── LICENSE # License file
- Search: User searches for anime → Request sent to Worker → Worker proxies to AllAnime API
- Episode Selection: User selects episode → Worker fetches source URLs and decodes them
- Video Sources: Worker processes different providers (wixmp, youtube, sharepoint, hianime)
- Playback: Direct video URL returned to frontend → HTML5 player plays the video
- Frontend: GitHub Pages (free)
- Backend: Cloudflare Workers (free tier: 100k requests/day)
- Domain:
yourusername.github.io/ani-cli-web
- Frontend: Nginx/Apache on Pi
- Backend: Cloudflare Workers
- Domain: Your home network or dynamic DNS
- Frontend: Vercel (free)
- Backend: Cloudflare Workers
- Domain: Custom domain supported
- Frontend: Netlify (free)
- Backend: Cloudflare Workers
- Domain: Custom domain supported
This project is for educational purposes only. Users are responsible for complying with their local laws and the terms of service of content providers. The developers do not host, store, or distribute any copyrighted content.
The free Cloudflare Workers tier includes:
- 100,000 requests per day
- 10ms CPU time per request
- 128MB memory
For heavy usage, consider upgrading to the paid tier.
If you encounter CORS errors:
- Make sure your Cloudflare Worker is deployed and accessible
- Verify the API_PROXY URL in
index.htmlis correct - Check browser console for specific error messages
- Check if your Worker is deployed and running
- Verify the API_PROXY URL is correct
- Check browser network tab for failed requests
- Some video sources may not work in all browsers
- Try a different browser (Chrome/Firefox recommended)
- Check if the video URL is accessible directly
# Check your account ID
wrangler whoami
# Verify wrangler.toml configuration
wrangler preview
# Check worker logs
wrangler tailContributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch:
git checkout -b feature/new-feature - Make your changes
- Test thoroughly
- Submit a pull request
- Keep the interface simple and fast
- Ensure mobile responsiveness
- Test on multiple browsers
- Follow existing code style
- Update documentation
This project is licensed under the MIT License - see the LICENSE file for details.
- ani-cli - The original CLI tool that inspired this project
- AllAnime - Anime content source
- Cloudflare Workers - Serverless platform for the proxy
- Some video sources may not work in Safari
- M3U8 streams require modern browser support
- Rate limiting may occur with heavy usage
To update your deployment:
-
Pull latest changes:
git pull origin main
-
Redeploy Worker:
wrangler publish
-
Clear browser cache for the frontend