#stream #m3u #information #extract #url #playlist #availability

bin+lib m3u_parser

A library for parsing and manipulating M3U files

3 releases

0.1.2 May 22, 2023
0.1.1 May 22, 2023
0.1.0 May 22, 2023

#4 in #m3u

26 downloads per month

MIT license

42KB
758 lines

M3U Parser

License Crates.io Documentation

A library for parsing and manipulating M3U playlists.

Features

  • Parse M3U playlists from files or URLs.
  • Extract stream information such as title, logo, URL, category, etc.
  • Filter stream information based on attributes and conditions.
  • Check the availability of streams by sending requests to their URLs.
  • Save filtered stream information to a new M3U playlist.

Installation

Add the m3u_parser crate to your Cargo.toml file:

[dependencies]
m3u_parser = "0.1.1"

Import the M3uParser struct and use it to parse M3U playlists:

use m3u_parser::M3uParser;

#[tokio::main]
async fn main() {
    let mut parser = M3uParser::new(None);
    parser.parse_m3u("path/to/playlist.m3u", false, true).await;
    // Perform operations on the parsed stream information
}

For more examples and detailed documentation, see the API documentation.

Examples

Parse an M3U playlist file and print the stream information:

use m3u_parser::M3uParser;

#[tokio::main]
async fn main() {
    let mut parser = M3uParser::new(None);
    parser.parse_m3u("path/to/playlist.m3u", false, true).await;
    for stream_info in parser.streams_info {
        println!("{:?}", stream_info);
    }
}

Author

👤 Pawan Paudel

🤝 Contributing

Contributions, issues and feature requests are welcome!
Feel free to check issues page.

Show your support

Give a ⭐️ if this project helped you!

Copyright © 2023 Pawan Paudel.

Dependencies

~9–25MB
~349K SLoC