aimi_lib
A Dart library for interacting with anime APIs and playing videos.
Features
- Search Anime: Search for anime titles from supported sources (AllAnime, AnimePahe, and Anizone).
- Fetch Episodes: Retrieve available episodes for a selected anime.
- Get Video Sources: Extract video stream URLs (HLS/MP4) for episodes.
- Play Video: Launch external video players (MPV, VLC, IINA) or open in browser.
- Cross-Platform: Works on Windows, macOS, Linux, and Android.
Getting started
Add this package to your pubspec.yaml:
dependencies:
aimi_lib: ^1.0.0
If you plan to use the built-in Player class to play videos, ensure you have a supported video player installed:
- MPV (Recommended)
- VLC
- IINA (macOS)
Note: This is optional. You can implement your own player logic or use other packages to handle video playback using the URLs provided by VideoSource.
Usage
You can run the example script to see the library in action. The CLI lets you choose between AllAnime, AnimePahe, and Anizone sources:
dart run example/aimi_lib_example.dart
Here is a simple example of how to use the library:
import 'package:aimi_lib/aimi_lib.dart';
void main() async {
// Initialize source
final source = AllAnimeSource(); // or AnimePaheSource(), AnizoneSource()
// Search for anime
final results = await source.searchAnime('Naruto');
if (results.isNotEmpty) {
final anime = results.first;
print('Found: ${anime.name}');
// Get episodes
final episodes = await anime.getEpisodes();
if (episodes.isNotEmpty) {
final firstEp = episodes.first;
// Get video sources
final sources = await firstEp.getSources();
if (sources.isNotEmpty) {
// Play the first source
await Player.play(sources.first, title: '${anime.name} - Episode ${firstEp.number}');
}
}
}
// Free memory
source.close();
}
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Credits
- Special thanks to ani-cli for providing the base logic and inspiration.
- Special thanks to animepahe-dl for the AnimePahe source logic.
Libraries
- aimi_lib
- A library for interacting with anime APIs and playing videos.