GithubHelp home page GithubHelp logo

dominicmaas / youtube-extractor Goto Github PK

View Code? Open in Web Editor NEW
85.0 5.0 27.0 63 KB

YouTube stream extractor library for Dart. Based on YouTubeExplode by Tyrrrz.

License: MIT License

Dart 100.00%
dart-library youtube download youtube-downloader dart2 flutter-plugin soundbyte

youtube-extractor's People

Contributors

davidgalarza avatar dominicmaas avatar eddiejeong avatar gregoriouds avatar w4ll3 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

youtube-extractor's Issues

403 Status Code

I am getting a 403 error on many videos, such as "5_x2jBT6jtE."

  HttpClient client = HttpClient();
  var audioInfo = await extractor.getMediaStreamsAsync('5_x2jBT6jtE');

  var songReq = await client.getUrl(Uri.parse(audioInfo.audio.first.url));
  var songRes = await songReq.close();
  var songBytes = await consolidateHttpClientResponseBytes(songRes);

  print(songRes.statusCode); // 403
  print(songRes.reasonPhrase); // Forbidden

Am I requesting the bytes incorrectly? I am able to see the audio URLs, I am just not able to get a bytes response.

Unhandled Exception: NoSuchMethodError: The method '>' was called on null.

I get this error on a newly uploaded video. Other videos are working. Whats wrong here?

Unhandled Exception: NoSuchMethodError: The method '>' was called on null.
Receiver: null
Tried calling: >(0)
#0 Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5)
#1 YouTubeExtractor.getMediaStreamsAsync (package:youtube_extractor/youtube_extractor.dart:104:25)

Connection terminated during handshake

/flutter ( 7193): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: HandshakeException: Connection terminated during handshake
�[38;5;248mE/flutter ( 7193): #0 IOClient.send�[39;49m
E/flutter ( 7193):
�[38;5;248mE/flutter ( 7193): #1 BaseClient._sendUnstreamed�[39;49m
E/flutter ( 7193):
�[38;5;248mE/flutter ( 7193): #2 BaseClient.head�[39;49m
�[38;5;248mE/flutter ( 7193): #3 YouTubeExtractor.getMediaStreamsAsync�[39;49m
E/flutter ( 7193):
�[38;5;248mE/flutter ( 7193): #4 _WidgetsState._youtubeDownload�[39;49m
E/flutter ( 7193):
�[38;5;248mE/flutter ( 7193): #5 _WidgetsState.build.�[39;49m
�[38;5;244mE/flutter ( 7193): #6 _InkResponseState._handleTap�[39;49m
�[38;5;244mE/flutter ( 7193): #7 _InkResponseState.build.�[39;49m
�[38;5;244mE/flutter ( 7193): #8 GestureRecognizer.invokeCallback�[39;49m
�[38;5;244mE/flutter ( 7193): #9 TapGestureRecognizer._checkUp�[39;49m
�[38;5;244mE/flutter ( 7193): #10 TapGestureRecognizer.handlePrimaryPointer�[39;49m
�[38;5;244mE/flutter ( 7193): #11 PrimaryPointerGestureRecognizer.handleEvent�[39;49m
�[38;5;244mE/flutter ( 7193): #12 PointerRouter._dispatch�[39;49m
�[38;5;244mE/flutter ( 7193): #13 PointerRouter.route�[39;49m
�[38;5;244mE/flutter ( 7193): #14 _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent�[39;49m
�[38;5;244mE/flutter ( 7193): #15 _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent�[39;49m
�[38;5;244mE/flutter ( 7193): #16 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent�[39;49m
�[38;5;244mE/flutter ( 7193): #17 _WidgetsFlutterBinding&BindingBase&GestureBinding._flushPointerEventQueue�[39;49m
�[38;5;244mE/flutter ( 7193): #18 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket�[39;49m
�[38;5;244mE/flutter ( 7193): #19 _rootRunUnary (dart:async/zone.dart:1136:13)�[39;49m
�[38;5;244mE/flutter ( 7193): #20 _CustomZone.runUnary (dart:async/zone.dart:1029:19)�[39;49m
�[38;5;244mE/flutter ( 7193): #21 _CustomZone.runUnaryGuarded (dart:async/zone.dart:931:7)�[39;49m
�[38;5;244mE/flutter ( 7193): #22 _invoke1 (dart:ui/hooks.dart:252:10)�[39;49m
�[38;5;244mE/flutter ( 7193): #23 _dispatchPointerDataPacket (dart:ui/hooks.dart:161:5)�[39;49m

How can I use this plugin if you don't appropriately expose necessary classes?

Because you don't export classes inside src folder so I cannot import them, the runtime keeps complaining about this.
E.g: MediaStreamInfoSet, Container, v..v..
Basically, can't do this for now:
final MediaStreamInfoSet streamInfoSet = await YouTubeExtractor().getMediaStreamsAsync(id); final MediaStreamInfoSet streamInfo = streamInfoSet.video.where((s) => s.container == Container.Mp4);

not extract video dash

show error

D/libc-netbsd(23374): getaddrinfo: www.youtube.com get result from proxy gai_error = 0
E/flutter (23374): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: NoSuchMethodError: The method 'group' was called on null.
E/flutter (23374): Receiver: null
E/flutter (23374): Tried calling: group(0)
E/flutter (23374): #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5)
E/flutter (23374): #1 YouTubeExtractor._getVideoPlayerContextAsync (package:youtube_extractor/youtube_extractor.dart:228:14)
E/flutter (23374):
E/flutter (23374): #2 YouTubeExtractor.getMediaStreamsAsync (package:youtube_extractor/youtube_extractor.dart:38:31)
E/flutter (23374): #3 main (package:flick_player/main.dart:7:36)
E/flutter (23374): #4 _runMainZoned.. (dart:ui/hooks.dart:233:25)
E/flutter (23374): #5 _rootRun (dart:async/zone.dart:1190:13)
E/flutter (23374): #6 _CustomZone.run (dart:async/zone.dart:1093:19)
E/flutter (23374): #7 _runZoned (dart:async/zone.dart:1630:10)
E/flutter (23374): #8 runZonedGuarded (dart:async/zone.dart:1618:12)
E/flutter (23374): #9 _runMainZoned. (dart:ui/hooks.dart:225:5)
E/flutter (23374): #10 _startIsolate. (dart:isolate-patch/isolate_patch.dart:301:19)
E/flutter (23374): #11 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)
E/flutter (23374):

Unable to get Video or Audio URL from Youtube extractor

Hi,

I am using the below code to extract the video URL to download the video in my app. I am always getting empty array in video property.

var videoInfo = await extractor.getMediaStreamsAsync(videoId); print('Video URL: ${videoInfo.video}');

Please let me know if any other alternative solution.

Element muxed not found (flutter youtube_extractor)

hello
I have a problem
I can't get a video muxed with sound but can get video or sound only without muxed

there are error

E/flutter ( 9171): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: Bad state: No element E/flutter ( 9171): #0 List.first (dart:core-patch/growable_array.dart:219:5) E/flutter ( 9171): #1 _HomePageState._getDownloadLink (package:download_from_youtube/main.dart:154:46) E/flutter ( 9171): <asynchronous suspension> E/flutter ( 9171): #2 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:772:19) E/flutter ( 9171): #3 _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:855:36) E/flutter ( 9171): #4 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182:24) E/flutter ( 9171): #5 TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:504:11) E/flutter ( 9171): #6 BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:282:5) E/flutter ( 9171): #7 BaseTapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:217:7) E/flutter ( 9171): #8 PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:475:9) E/flutter ( 9171): #9 PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:76:12) E/flutter ( 9171): #10 PointerRouter._dispatchEventToRoutes.<anonymous closure> (package:flutter/src/gestures/pointer_router.dart:122:9) E/flutter ( 9171): #11 _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:379:8) E/flutter ( 9171): #12 PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.dart:120:18) E/flutter ( 9171): #13 PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:106:7) E/flutter ( 9171): #14 GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:218:19) E/flutter ( 9171): #15 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:198:22) E/flutter ( 9171): #16 GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:156:7) E/flutter ( 9171): #17 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:102:7) E/flutter ( 9171): #18 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:86:7) E/flutter ( 9171): #19 _rootRunUnary (dart:async/zone.dart:1196:13) E/flutter ( 9171): #20 _CustomZone.runUnary (dart:async/zone.dart:1085:19) E/flutter ( 9171): #21 _CustomZone.runUnaryGuarded (dart:async/zone.dart:987:7) E/flutter ( 9171): #22 _invoke1 (dart:ui/hooks.dart:275:10) E/flutter ( 9171): #23 _dispatchPointerDataPacket (dart:ui/hooks.dart:184:5) E/flutter ( 9171):

Cannot get any URL

I used same example given with this plugin but it's not working. I got following error

[VERBOSE-2:ui_dart_state.cc(157)] Unhandled Exception: Bad state: No element #0 List.first (dart:core-patch/growable_array.dart:222:5) #1 _MyAppState.youtubeVideoUrls (package:video_player_demo/main.dart:44:41) <asynchronous suspension> #2 _MyAppState.initState (package:video_player_demo/main.dart:71:5) #3 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4355:58) #4 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5) #5 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14) #6 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12) #7 RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:1028:16) #8 RenderObjectToWidgetElement.mount (package:flutter/src/widgets/binding.dart:999:5) #9 RenderObjectToWidgetAdapter.attachToRenderTree.<anonymous closure> (package:flutter/src/widgets/binding.dart:942:17) #10 BuildOwner.buildScope (package:flutter/<…>

New Ownership

Do you want to take over this project by any chance @EddieJeong? This was originally to be used for a mobile app I was working on, but I have since moved to Xamarin and I'm not working with Flutter anymore.

The method 'group' was called on null.

It does not work anymore, I'm receiving the following error:

11-06 21:24:03.694 27171-27237/? E/flutter: [ERROR:flutter/shell/common/shell.cc(181)] Dart Error: Unhandled exception: NoSuchMethodError: The method 'group' was called on null. Receiver: null Tried calling: group() #0 PlayerSourceParser.parseCipherOperations (package:youtube_extractor/src/internal/parsers/player_source_parser.dart:22) #1 YouTubeExtractor._getVideoPlayerSourceAsync (package:youtube_extractor/youtube_extractor.dart:298) <asynchronous suspension> #2 YouTubeExtractor.getMediaStreamsAsync (package:youtube_extractor/youtube_extractor.dart:73) <asynchronous suspension> #3 _SyncScreenState.initState.<anonymous closure> (package:sounter/screens/Sync/sync.dart:126) #4 _RootZone.runUnary (dart:async/zone.dart:1379) #5 _FutureListener.handleValue (dart:async/future_impl.dart:129) #6 Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:642) #7 Future._propagateToListeners (dart:async/future_impl.dart:671) #8 Future._complete (dart:async/future_impl.dart:476) #9 _SyncCompleter.complete (dart:async/future_impl.dart:51) #10 _AsyncAwaitCompleter.complete (dart:async/runtime/libasync_patch.dart:28) #11 _completeOnAsyncReturn (dart:async/runtime/libasync_patch.dart:295) #12 getSong (package:sounter/util/geniusApi.dart:0) #13 _RootZone.runUnary (dart:async/zone.dart:1379) #14 _FutureListener.handleValue (dart:async/future_impl.dart:129) #15 Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:642) #16 Future._propagateToListeners (dart:async/future_impl.dart:671) #17 Future._complete (dart:async/future_impl.dart:476) #18 _SyncCompleter.complete (dart:async/future_impl.dart:51) #19 _AsyncAwaitCompleter.complete (dart:async/runtime/libasync_patch.dart:28) #20 _completeOnAsyncReturn (dart:async/runtime/libasync_patch.dart:295) #21 _withClient (package:http/http.dart:0) #22 _RootZone.runUnary (dart:async/zone.dart:1379) #23 _FutureListener.handleValue (dart:async/future_impl.dart:129) #24 Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:642) #25 Future._propagateToListeners (dart:async/future_impl.dart:671) #26 Future._completeWithValue (dart:async/future_impl.dart:486) #27 Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:516) #28 _microtaskLoop (dart:async/schedule_microtask.dart:41) #29 _startMicrotaskLoop (dart:async/schedule_microtask.dart:50)

The method 'group' was called on null.

I'm getting this error again and It does not work anymore, I'm receiving the following error:

): [ERROR:flutter/shell/common/shell.cc(184)] Dart Error: Unhandled exception:
E/flutter (23690): NoSuchMethodError: The method 'group' was called on null.
E/flutter (23690): Receiver: null
E/flutter (23690): Tried calling: group(1)
E/flutter (23690): #0 Object.noSuchMethod (dart:core/runtime/libobject_patch.dart:50:5)
E/flutter (23690): #1 PlayerSourceParser.parseCipherOperations (package:youtube_extractor/src/internal/parsers/player_source_parser.dart:22:10)
E/flutter (23690): #2 YouTubeExtractor._getVideoPlayerSourceAsync (package:youtube_extractor/youtube_extractor.dart:298:29)
E/flutter (23690):
E/flutter (23690): #3 YouTubeExtractor.getMediaStreamsAsync (package:youtube_extractor/youtube_extractor.dart:73:19)
E/flutter (23690):

The last time that I got this error have been a YouTube API change.

the method 'group' was called on null again

this is the error

E/flutter (24762): [ERROR:flutter/shell/common/shell.cc(184)] Dart Error: Unhandled exception:
E/flutter (24762): NoSuchMethodError: The method 'group' was called on null.
E/flutter (24762): Receiver: null
E/flutter (24762): Tried calling: group(1)
E/flutter (24762): #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:50:5)
E/flutter (24762): #1 PlayerSourceParser.parseCipherOperations (package:youtube_extractor/src/internal/parsers/player_source_parser.dart:23:27)
E/flutter (24762): #2 YouTubeExtractor._getVideoPlayerSourceAsync (package:youtube_extractor/youtube_extractor.dart:298:29)
E/flutter (24762):
E/flutter (24762): #3 YouTubeExtractor.getMediaStreamsAsync (package:youtube_extractor/youtube_extractor.dart:73:19)
E/flutter (24762):
E/flutter (24762): #4 test (package:chewie_sample/geturl.dart:8:40)
E/flutter (24762):
E/flutter (24762): #5 MyApp.build (package:chewie_sample/main.dart:15:5)
E/flutter (24762): #6 StatelessElement.build (package:flutter/src/widgets/framework.dart:3789:28)
E/flutter (24762): #7 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3739:15)
E/flutter (24762): #8 Element.rebuild (package:flutter/src/widgets/framework.dart:3565:5)
E/flutter (24762): #9 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2278:33)
E/flutter (24762): #10 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:700:20)
E/flutter (24762): #11 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:286:5)
E/flutter (24762): #12 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1012:15)
E/flutter (24762): #13 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:952:9)
E/flutter (24762): #14 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.scheduleWarmUpFrame. (package:flutter/src/scheduler/binding.dart:773:7)
E/flutter (24762): #15 Timer._createTimer. (dart:async-patch/timer_patch.dart:21:15)
E/flutter (24762): #16 _Timer._runTimers (dart:isolate-patch/timer_impl.dart:382:19)
E/flutter (24762): #17 _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:416:5)
E/flutter (24762): #18 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:171:12)

Can not get url

I can't get direct url from youtube
Please check your library

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.