M3UKit
A µ framework for parsing m3u files.
Usage
1. Create a parser
let parser = PlaylistParser()
2. Parse a playlist
The playlist parser can parse a playlist from any source that conforms to the protocol PlaylistSource
, by default: String
, and URL
.
let url = URL(string: "https://domain.com/link/to/m3u/file")
let playlist = try parser.parse(url)
or
let url = Bundle.main.url(forResource: "playlist", withExtension: "m3u")!
let playlist = try parser.parse(url)
or
let raw = """
#EXTM3U
#EXTINF:-1 tvg-id="DenHaagTV.nl",Den Haag TV (1080p)
http://wowza5.video-streams.nl:1935/denhaag/denhaag/playlist.m3u8
"""
let playlist = try parser.parse(raw)
M3UKit also supports asynchronous parsing with a completion handler or with the new async/await API
parser.parse(url) { result in
switch result {
case .success(let playlist):
// consume playlist
case .failure(let error):
// handle error
}
}
or
let playlist = try await parser.parse(url)
Schema
M3U exposes one model; Playlist
, with the following schema:
Playlist
└── channels
Channel
├── duration
├── attributes
├── name
└── url
Attributes
├── id (tvg-id)
├── name (tvg-name)
├── country (tvg-country)
├── language (tvg-language)
├── logo (tvg-logo)
├── channelNumber (tvg-chno)
├── shift (tvg-shift)
└── groupTitle (group-title)
Installation
Swift Package Manager
The Swift Package Manager is a tool for managing the distribution of Swift code.
- Add the following to your
Package.swift
file:
dependencies: [
.package(url: "https://github.com/omaralbeik/M3UKit.git", from: "0.4.0")
]
- Build your project:
$ swift build
CocoaPods
To integrate M3UKit into your Xcode project using CocoaPods, specify it in your Podfile:
pod 'M3UKit', :git => 'https://github.com/omaralbeik/M3UKit.git', :tag => '0.4.0'
Carthage
To integrate M3UKit into your Xcode project using Carthage, specify it in your Cartfile:
github "omaralbeik/M3UKit" ~> 0.4.0
Manually
Add the Sources folder to your Xcode project.
Thanks
Special thanks to Bashar Ghadanfar for helping with the regex patterns used for parsing m3u files
License
M3UKit is released under the MIT license. See LICENSE for more information.