FLUTTER ECOSYSTEM

thitlwincoder/direct_link

URL से सीधे लिंक निकालें और सीधे प्रसारित और डाउनलोड करें

direct_link प्रोजेक्ट कवर
Stars
36
Forks
21
अंतिम पुश (UTC)
18 अग॰ 2026
प्रोजेक्ट स्थिति
सक्रिय
Thit Lwin GitHub avatar
GITHUB User

Thit Lwin ↗

Flutter Developer

RemoteYangon, Myanmar(Burma)
भाषाएँDartC++CMakeRubySwiftCHTMLKotlinObjective-C

तकनीकी विषय

इस रिपॉज़िटरी के पैकेज

उपयोग की गई निर्भरताएँ

निर्भरता सूची 5 आइटम

मूल README

यह अंग्रेज़ी मूल स्नैपशॉट है। नवीनतम सामग्री GitHub पर देखें।

README खोलें / बंद करें

direct_link

pub package Last Commits GitHub repo size License
Uploaded By

direct_link is a Flutter package for extracting direct media links and basic metadata from supported public page URLs.

Use it when you need to build a downloader, media preview, or media utility app that can resolve a shared social/video URL into playable or downloadable links.

Features

  • Extract direct media links from supported websites.
  • Return media metadata such as title, thumbnail, and duration when available.
  • Return multiple qualities or formats when the source provides them.
  • Simple null-safe API with a single check method.

Supported websites

  • Facebook
  • Instagram
  • YouTube
  • Twitter/X
  • Dailymotion
  • Vimeo
  • VK
  • SoundCloud
  • TikTok
  • Reddit
  • Threads

Support depends on the upstream website response and the extraction service used internally. A supported website can still return null when the URL is private, removed, region-blocked, unsupported by the upstream service, or temporarily unavailable.

Platform support

This package currently depends on Flutter and flutter_inappwebview, so it is intended for Flutter apps.

Screenshot

direct_link example screenshot

Installation

Add direct_link to your Flutter project's pubspec.yaml:

dependencies:
  direct_link: ^0.3.3

Then run:

flutter pub get

Import the package:

import 'package:direct_link/direct_link.dart';

Usage

Create a DirectLink instance and call check with a supported page URL:

final directLink = DirectLink();

final data = await directLink.check(
  'https://www.youtube.com/watch?v=kzOO_uplPdk',
);

if (data == null) {
  // No media link was found, or the upstream service could not resolve it.
  return;
}

print(data.title);
print(data.thumbnail);
print(data.duration);

for (final link in data.links ?? []) {
  print(link.quality);
  print(link.type);
  print(link.link);
}

API

DirectLink.check
Future<SiteModel?> check(String url, {double? timeoutInterval});

Resolves a supported public page URL into a SiteModel.

Returns null when no media link can be extracted.

SiteModel
class SiteModel {
  final String? title;
  final String? thumbnail;
  final String? duration;
  final List<Link>? links;
}
Link
class Link {
  final String quality;
  final String link;
  final String? type;
}

Notes and limitations

  • This package resolves public media URLs only.
  • Private, deleted, age-restricted, login-required, or region-blocked content may not resolve.
  • Website markup and upstream extraction behavior can change without notice.
  • The returned link list and quality labels depend on the source website and upstream service response.
  • Network-based social website checks are integration tests and are not run by default.

Testing

Run deterministic unit tests:

flutter test

Run real-site integration tests explicitly:

flutter test integration_test/social_test.dart

Integration tests depend on live third-party websites and may fail because of network issues, rate limits, region restrictions, or upstream website changes.

Contributing

Issues and pull requests are welcome.

  • Report bugs on the issue tracker.
  • Include a reproducible URL when reporting extraction failures.
  • Keep unit tests deterministic. Put live website checks in integration_test/.

License

This package is released under the MIT License.