Readit News logoReadit News
andai · a year ago
For a while I had expensive internet and low bandwidth, but I loved listening to music and lectures on YouTube. At some point I realized that getting only the audio stream would save me 90% in bandwidth costs. [0]

youtube-dl (and yt-dlp) has a flag, I believe -G, which gives you the URL(s) for the requested format/quality. I used the command line on my computer and put the link in VLC. On my phone I had this elaborate workaround involving downloading the file to my VPS first over SSH, then downloading it to my phone, until I realized my phone browser can consume the URL directly, so I set up a PHP frontend for `youtube-dl -G -f bestaudio {url}`

It's no longer online and I lost the code, but it was like one line of code.

I mention this because you-get seems to support the same usecase (via --url / -u), so I wanted to let people know how useful this is!

(While it was online I shared it on some forums and got very positive feedback, people used it for audiobooks etc.)

[0] Also playing with screen off saves 80% battery life! YouTube knows these facts and that's why they made background playback (which fetches only audio stream) a paid feature...

TechDebtDevin · a year ago
Brave Mobile browser allows turning on background video audio thus eliminating the need for YouTube Premium and similar subscriptions.
bonestamp2 · a year ago
This works great, thank you.

For others: Settings > Media > Enable Background Audio

l3x4ur1n · a year ago
I don't know why your comment is downvoted because I use this feature of Brave very often and I also exclusively watch YT in Brave mobile (no ads).
BiteCode_dev · a year ago
New Pipe X if you need a full client does that as well.
hot_gril · a year ago
Seems like youtube-dl doesn't work anymore. I had to use a fork yt-dlp. Always makes me nervous hopping from one project to another like that, but seems like it's commonly used at least.
shiroiushi · a year ago
youtube-dl has been dead for many years now; it's a lot like XFree86, where the original project is a zombie with very few real users, but the original maintainers refuse to acknowledge reality and just shutter the thing, so newcomers get confused. Everyone's moved to yt-dlp now.
TowerTall · a year ago
I am using the GUI version on windows https://oleksis.github.io/youtube-dl-gui/
andai · a year ago
Yeah, yt-dlp is the successor. I've been using it for years.
entropie · a year ago
> It's no longer online and I lost the code, but it was like one line of code.

My mom is really into audiobooks and I made telegram bot for her via node-red where she can share youtube links. The links are sent to a fifo where a little daemon (1) downdloads them sequential and saves them into an incoming folder I setup for this special purpose. The bot can either download only audio (for her telegram ID its only audio) or complete videos.

This folder is watched by jellyfin which she can access to download or listen. She loves it and in two years she downloaded way over a TB of audiobooks.

1: https://gist.github.com/entropie/d265e94136b9777cc6b3190189b...

soheil · a year ago
I often choose 144p for low bandwidth scenarios. It is very similar to a good quality audio-only stream in terms of size, but you get the added benefit of looking at the speaker even if that's a glance every 45 mins. Same for battery life, you save that too.

Also 144p is somehow so peaceful and relaxing to watch, you don't get distracted with all the shiny colors and intricate details in the video and can just listen and not have your mind focus on some random stuff.

dgan · a year ago
Me too, i don't enjoy observing people's pimples on the nose
doruk101 · a year ago
You can glitch out Safari on IOS -by quickly pressing the play button for the video in the now playing interface after switching off from the Safari app- to play the audio of Youtube videos on the background.

I mainly use this to play membership only videos that don't play in the background even if you have a Youtube Premium.

Every IOS version I pray that they don't patch this "glitch".

ambiguousninja · a year ago
Interesting, I don't use premium but is there a reason membership only videos don't support background audio? Seems like a weird exclusion
Synaesthesia · a year ago
BTW if you browse YouTube with Firefox browser on Android you can play back YouTube videos with the screen locked using background player fix extension.
tirpen · a year ago
That works fine without any extensions at all, so I'm unsure what does the extension even does?
kevin_thibedeau · a year ago
Or just switch FFA to desktop mode.
wutwutwat · a year ago
A service that takes arbitrary user input and then attempts to download/proxy whatever is at the end of that input. Brave soul.
cquintana92 · a year ago
One of my last weekend projects was something similar: convert youtube playlists into podcast-compstible URLs:

https://github.com/cquintana92/yt2pc

ww520 · a year ago
That’s the -F option to list all the formats, including the audio streams. Pick the audio format with -f to download the audio. I usually pick the .m4a format and then run it through ffmpeg to convert to mp3.
krick · a year ago
That's really unnecessarily complicated workflow you have. It's achievable by yt-dlp with just 3 flags:

--extract-audio

--format bestaudio

--audio-format mp3

KMnO4 · a year ago
What’s the point of converting it to mp3? AAC inside an m4a container usually has better sound quality than similarly compressed mp3, and definitely better than reencoding.
andai · a year ago
Same but I converted to Opus, because I was trying to squeeze it into as little bandwidth as possible. It was mostly speech content and Opus auto detects and optimizes for speech at low nitrates.
6yyyyyy · a year ago
NewPipe can do this very nicely, it even lets you build a playlist of videos.
Karrot_Kream · a year ago
When I use NNCP [1] on flights to download Youtube videos, the script I wrote to nncp-exec the download accepts a quality friendly name. I have a specific friendly name which gets the lowest quality video and mid-tier audio. These settings usually result in a pretty enjoyable experience and offer plenty of entertainment even on a longer flight.

[1]: http://www.nncpgo.org/

EasyMark · a year ago
Just switching tabs will dramatically lower energy usage without using any scripts. I assume the YouTube video player may download and just drop the video information if not showing it, no need to render decrypt the video stream.
lights0123 · a year ago
YouTube doesn’t encrypt the media stream other than TLS. Decoding the video can be skipped though.
01HNNWZ0MV43FF · a year ago
I think it's -x to just rip audio now
khimaros · a year ago
on Android YTDLnis solves this very nicely. simply share the video URL to the app and it can download whichever format you like https://github.com/deniscerri/ytdlnis
dredmorbius · a year ago
mpv similarly has this option. I listen to far more videos than I watch.

<https://mpv.io/>

Gormo · a year ago
MPV is just passing the stream selection arguments over to youtube-dl/yt-dlp.
politelemon · a year ago
It seems they do not want you to report an issue without an accompanying fix for it.

> If you would like to report a problem you find when using you-get, please open a Pull Request, which should include [snip]

Can't say I've encountered this before.

wccrawford · a year ago
As the other commenter said, they want a failing test, not a fix.

    A detailed description of the encountered problem;
    At least one commit, addressing the problem through some unit test(s).
        Examples of good commits: #2675, #2680, #2685
"Addressing" is probably a bad word to use here. "Demonstrating" would have been better, IMO.

tylerchilds · a year ago
the most expensive piece of writing software is scoping work.

i’m almost tempted to add a test suite just to give people more agency over my output because right now i’m only soliciting feedback in person to cut down on internet bullshit, like what happened to xz-utils

omoikane · a year ago
The Chinese version of the text has an extra header line that translates to "to prevent abuse via GitHub Issues, we are not accepting general issues". An earlier commit has this for the English text:

   `you-get` is currently experimenting with an aggressive approach to handling issues. Namely, a bug report must be addressed with some code via a pull request.
https://github.com/soimort/you-get/commit/75b44b83826b3c2d9a...

Maybe they got too much spam.

By the way, `tests/test.py` seems to just run the extractors against various websites directly. I can't find where it's mocking out network requests and replies. Maybe this is to simplify the process for people creating pull requests?

godelski · a year ago
I can get this, but I aggressively report accounts and issues. I'm not sure how GitHub handles them but they seem to not come back.

Though what I'm unsure how to deal with is legitimate users being idiotic. For example, recently one issue was opened that asked where the source code was. Not only was there a directory named "src" but there were some links in the readme to specific parts. While I do appreciate GitHub and places like hugging face [0], there are a lot of very aggressive and demanding noobs.

I'd like ways to handle them better.... I'm tired of people yelling at me because 5 year old research code no longer works out of the box or because you've never touched code before.

[0] check any hugging face issue and you'll see far more spam. Same accounts will open multiple issues that just barate owners and hugging face makes it difficult to report these accounts.

bonestamp2 · a year ago
Kind of makes sense, it weeds out all of the people who didn't read the manual.
kylecazar · a year ago
They want you to just submit a PR with a test that, if passed, would indicate the problem for you is fixed.
sigseg1v · a year ago
I kind of like this. It's a more formal proof of concept. You prove the bug exists by writing a failing test. If they cannot construct a failing test then it's either too hard to mock or reproduce (and therefore maybe not even worth fixing, for a free tool), or it's impossible because it's not a bug. Frees up maintainer time from dealing with reports that aren't bugs.
thangngoc89 · a year ago
What happens if you don’t know Python? Python is a relatively easy language to learn but no way I’m gonna learn Python just to report an issue
onionisafruit · a year ago
Interesting. I like the idea of encouraging people to try creating a test or even a whole fix, but saying that’s all you will accept is a bit much. On the other hand, I’m not doing the work to maintain you-get. I don’t know what they deal with. This may be an effective way to filter a flood of repetitive issues from people who don’t know how to run a command line program.
probably_wrong · a year ago
I believe there are two extremes. On one end you get a bunch of repetitive non-issues, while on the other end you only get issues about (say) bugs in FreeBSD 13.3 because only hard-core users have the skills and patience to follow THE PROCESS.

I know how to make an isolated virtual environment, install the package, make a fork, create a test and make a PR. But I don't know whether I care enough about a random project to actually do it.

thih9 · a year ago
It’s relatively easy to write a failing test and it massively cuts down the work related to moderating issues. Also, reduces the danger of github issues turning into a support forum.

If this results in the project being easier to maintain and being maintained longer, then I’m fine with this.

seneca · a year ago
> It’s relatively easy to write a failing test and it massively cuts down the work related to moderating issues.

Relative to what? Learning someone else's code base well enough to write a useful test is not trivial.

It's not a bad method, but the vast majority of users won't be capable of writing a test that encapsulates their issue.

Deleted Comment

krick · a year ago
Given the title and the first few sentences from a description I assumed that it's some heuristic-based tool to try and grab whatever there is on the page, which would be useful if there's no tool which implemented the support for this site (which in most cases just means "yt-dlp doesn't support it"). But apparently it's also extractor-based with a separate extractor for each somewhat-popular source. So, basically it's just less sophisticated clone of yt-dlp?
jdthedisciple · a year ago
Anybody else getting this error constantly?

    you-get: [error] oops, something went wrong.
    you-get: don't panic, c'est la vie. please try the following steps:
    you-get:   (1) Rule out any network problem.
    you-get:   (2) Make sure you-get is up-to-date.
    you-get:   (3) Check if the issue is already known, on
    you-get:         https://github.com/soimort/you-get/wiki/Known-Bugs
    you-get:         https://github.com/soimort/you-get/issues
    you-get:   (4) Run the command with '--debug' option,
    you-get:       and report this issue with the full output.
Tried with debug flag but didn't really help

    pattern = str(pattern, 'latin1')
              ^^^^^^^^^^^^^^^^^^^^^^
    TypeError: decoding to str: need a bytes-like object, NoneType found
I was curious to see if it can bypass age restriction (though I tried on non-age-restricted video too with the same error).

tcper · a year ago
Same error, not work at all.
dmuth · a year ago
Check your Python version.

Try switching to the newest version of Python with something like Pyenv, or even try spinning up a Docker image with something like:

docker run -it -v $(pwd):/mnt python:3.13 bash

...and try using the utility there. Good luck!

KTibow · a year ago
Can someone explain why this is better than yt-dlp
uniqueuid · a year ago
That's an interesting question. They only depend on a single library, but I wonder how much code is really their own. I found it curious, for example, that there is a dedicated mp4 joiner (I mean, if you already have ffmpeg, there is probably no way you can do it better yourself).

https://github.com/soimort/you-get/blob/develop/src/you_get/...

radicality · a year ago
That is interesting, huh, yeah they list ffmpeg as a dependency so I wonder what that didn’t cover for them.

Though there are some cases where using pure ffmpeg is just to difficult or impossible. Recently i had such a case where I wanted to merge multiple video files from my GoPro (they come out in 4GB parts if the video is longer than that), but while keeping / correctly merging all metadata such as date / accelerometer / gps / any custom binary streams. Ended up using this and worked great https://github.com/gyroflow/mp4-merge

grugagag · a year ago
How did you infer better than yt-dlp? I think the more the better when it comes to this space as google fights back.
xg15 · a year ago
But some information what the differences to ytdlp are and what the reasons for starting an entirely new project were, would still be helpful.

(Also, a multitude of tools isn't really all that helpful if they all stop working in the same instant because they all relied on the same APIs etc)

Deleted Comment

Dead Comment

xg15 · a year ago
I wouldn't exactly call a ytdl-style media downloader with a whole library of site-specific extractors and converters "dumb" but still cool that more projects like ytdl exist.
fnoobnar · a year ago
I’m not sure I understand why Bandcamp is on the list of supported sites: they allow you to just download the files on the condition you first pay the artist for them.

The fact you can download it with this tool is because the artist is letting you listen to it for free before buying it. Downloading it with this tool seems totally unnecessary and a bit of a jerk move. Bandcamp hosts mostly small and independent artists and labels.

lovethevoid · a year ago
Their list of supported sites isn't a declaration of where you should use this tool for moralistic reasons. It's just a list of popular sites it works on.
khaki54 · a year ago
I presume you could subscribe and still use this tool? People use automation tools like this to download things that they already pay for because it saves them the effort of logging into 5 different apps depending on which walled garden it's in.
fnoobnar · a year ago
It’s Bandcamp: you buy the album and they give you a link to download it in whatever format you want so you can listen to it using whatever app or device you wish. You can come back later and download it as many times as you like.
hluska · a year ago
Do artists get paid on Bandcamp if they bypass the login?
slightwinder · a year ago
Personal assumption, but probably not everyone lives in a country where they can pay Bandcamp.

And from personal experience I can say, sometimes people want or have to consume media offline, because of unreliable or slow network or expensive providers. But this doesn't mean that they won't pay later if they like it.

doublepg23 · a year ago
At what income level do pirates consider it immoral/moral to pirate something?
shiroiushi · a year ago
Different pirates have different moral codes regarding piracy; there is no standard.

Personally, I consider it immoral to pirate Windows without a very good reason (which doesn't include "I like using Windows", or "I want to play game X" or "I want to use the enterprise version which doesn't have baked-in ads").

Minor49er · a year ago
It's probably an inverse of non-pirates who consider it a moral obligation to pay for a digital copy of something that does not diminish or remove the original
warkdarrior · a year ago
Not all of us agree that artists should charge for their products.
zaptheimpaler · a year ago
That gives you the right to be an artist and not charge for your own products, not the right to steal from other artists who have differing beliefs.
bdhdbebebeb · a year ago
Not everyone agrees supermarkets should charge for groceries.
wanderingmind · a year ago
Nice work. But as a consumer, Why should I use you-get over yt-dlp? What are its strengths over yt-dlp, which works quiet well on a huge range of websites[1]

[1] https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites....