alexeichhorn / YouTubeKit

YouTube video and audio extractor for iOS, watchOS, visionOS, tvOS and macOS
MIT License
203 stars 46 forks source link

How to extract mp3 URL or file from 'Youtube(url:)' object #53

Closed yoondj98 closed 1 week ago

yoondj98 commented 2 weeks ago

Hi, I'm using your Library to extract mp3 from Youtube URL. It's so nice and useful to me.

But, I have a question that 'How to extract mp3 URL or file from 'Youtube(url:)' object'. There is no mp3 type in Audio and I can't find out any mp3 type in AudioCodec obeject.

This is the sample I used.

▿ Optional(YouTubeKit.Stream(url: https://rr2---sn-3u-u5x6.googlevideo.com/videoplayback?expire=1728552701&ei=nUoHZ87kH8qMg8UPj8786AI&ip=121.151.190.1&id=o-AK_5J0l8P70GoXjx_BEuMBNO8twBwkjNU78KCISZGRHa&itag=18&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&met=1728531101%2C&mh=rc&mm=31%2C29&mn=sn-3u-u5x6%2Csn-3u-bh2z6&ms=au%2Crdu&mv=m&mvi=2&pl=19&rms=au%2Cau&initcwndbps=812500&bui=AXLXGFQ9VVpy7jnmb8LICyZoPnApFlU5LXOwxBeDwiciC5H9Mk67mC18UXmnT3s-kXpbyb9s9Ld07Sql&vprv=1&mime=video%2Fmp4&rqh=1&cnr=14&ratebypass=yes&dur=273.461&lmt=1702838287135108&mt=1728530694&fvip=4&fexp=51300761%2C51312687&c=MEDIA_CONNECT_FRONTEND&txp=6318224&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cbui%2Cvprv%2Cmime%2Crqh%2Ccnr%2Cratebypass%2Cdur%2Clmt&sig=AJfQdSswRQIgU9yxrMsjm4-AoBBTDyK7-n-T1ZpKAKUAckDZtN8dqZ4CIQCEraX7bqHtRypM1xBdBl-iWqGSOX7Vs345wh5gJAlYOw%3D%3D&lsparams=met%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=ACJ0pHgwRQIgKDmqq9kdQsHwNB-SEg5VacItLptQXl0YNdvsgwvD_OcCIQD2iFD2IcnzyluQwJKWf5-OCc49GUn3huOQxax_5qwJAA%3D%3D, itag: YouTubeKit.ITag(itag: 18, videoResolution: Optional(360), audioBitrate: Optional(96)), videoCodec: Optional(YouTubeKit.VideoCodec.avc1(version: "42001E")), audioCodec: Optional(YouTubeKit.AudioCodec.mp4a(version: "40.2")), fileExtension: YouTubeKit.FileExtension.mp4, bitrate: Optional(438344), averageBitrate: nil, mimeType: "video/mp4", type: "video", subtype: "mp4", filesize: nil))
    ▿ audioCodec: Optional(YouTubeKit.AudioCodec.mp4a(version: "40.2"))
      ▿ some: YouTubeKit.AudioCodec.mp4a
    - fileExtension: YouTubeKit.FileExtension.mp4

I need your explanation~!

alexeichhorn commented 1 week ago

You should use .filterAudioOnly() if you want audio file. Look at https://github.com/alexeichhorn/YouTubeKit?tab=readme-ov-file#example-2 for a full example.

yoondj98 commented 1 week ago

Oh! I used that method for extracting mp3, But it was very long time to get. ex) It was 4min Youtube Video, but I need to wait for 2min to get audio from 'url' one of filterAudioOnly() properties 🥲🥲

alexeichhorn commented 1 week ago

I assume your download is slow. This is YouTube throttling you. Maybe look into #17 where I describe some ways to circumvent that.