ReadabilityKit helps you to extract a relevant preview (title, description, image and video) from the URL.
The goal is to try and get the best extraction from the article for servicing applications that need to show a preview of a web URL along with an image. Comparison with other extraction libraries available here. Comparison with another iOS extraction library (SwiftLinkPreview) available here.
Inspired by snacktory and newspaper.
Extracts:
- Title
- Description
- Top image
- Top video
- Keywords
- iOS 8.0+ / Mac OS X 10.9+ / tvOS 9.0+ / watchOS 2.0+
let parser = Readability(url: articleUrl)
let title = parser.title()
let description = parser.description()
let keywords = parser.keywords()
let imageUrl = parser.topImage()
let videoUrl = parser.topVideo()
To run the example project, clone the repo, and run pod install
from the Example directory first.
ReadabilityKit | SwiftLinkPreview | python-goose | snacktory | newspaper | |
---|---|---|---|---|---|
github | ✅ | ✅ | ✅ | ✅ | ✅ |
washingtonpost | ✅ | ✅ | ✅ | ✅ | ✅ |
youtube | ✅ | ❌ | ☑️ | ✅ | ☑️ |
vimeo | ✅ | ❌ | ✅ | ✅ | ☑️ |
✅ | ✅ | ☑️ | ✅ | ✅ | |
nytimes | ☑️ | ✅ | ❌ | ✅ | ✅ |
☑️ | ☑️ | ❌ | ✅ | ❌ | |
medium | ✅ | ✅ | ✅ | ✅ | ✅ |
✅ | ☑️ | ☑️ | ☑️ | ✅ | |
imgur | ✅ | ✅ | ✅ | ✅ | ✅ |
flickr | ✅ | ✅ | ❌ | ✅ | ✅ |
500px | ✅ | ❌ | ❌ | ✅ | ✅ |
dribbble | ✅ | ✅ | ☑️ | ✅ | ✅ |
lenta | ✅ | ✅ | ☑️ | ✅ | ✅ |
habrahabr | ✅ | ✅ | ☑️ | ✅ | ✅ |
bbc | ✅ | ✅ | ✅ | ✅ | ✅ |
✅ – correct ☑️ – partially correct ❌ – incorrect
ReadabilityKit vs SwiftLinkPreview
- ReadabilityKit uses part of ar90 algorithm which was transformed into the Redability.com product. This allows for more accurate extraction.
- Video support. ReadabilityKit detects videos on the page and extracts the most relevant to
Readability.topVideo
. - Typed API that allows you to use statically typed properties without force casting.
- Better threading model. You can use ReadabilityKit with both sync or async calls.
- Keyword extraction.
ReadabilityKit is available through CocoaPods. To install it, simply add the following line to your Podfile:
platform :ios, '8.0'
use_frameworks!
target 'MyApp' do
pod 'ReadabilityKit'
end
To integrate ReadabilityKit
into your Xcode project using Carthage, specify it in your Cartfile
:
github "exyte/ReadabilityKit" ~> 0.4.6
- Install Ji XML parser
- Download and drop ReadabilityKit.swift in your project
- Congratulations!
exyte, info@exyte.com
ReadabilityKit is available under the MIT license. See the LICENSE file for more info.