Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a "--get-size" option #9171

Closed
5 of 8 tasks
sebma opened this issue Apr 12, 2016 · 14 comments
Closed
5 of 8 tasks

Add a "--get-size" option #9171

sebma opened this issue Apr 12, 2016 · 14 comments

Comments

@sebma
Copy link

sebma commented Apr 12, 2016

Please follow the guide below

  • You will be asked some questions and requested to provide some information, please read them carefully and answer honestly
  • Put an x into all the boxes [ ] relevant to your issue (like that [x])
  • Use Preview tab to see how your issue will actually look like

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2016.04.06. If it's not read this FAQ entry and update. Issues with outdated version will be rejected.

  • I've verified and I assure that I'm running youtube-dl 2016.04.06

Before submitting an issue make sure you have:

  • At least skimmed through README and most notably FAQ and BUGS sections
  • Searched the bugtracker for similar issues including closed ones

What is the purpose of your issue?

  • Bug report (encountered problems with youtube-dl)
  • Site support request (request for adding support for a new site)
  • Feature request (request for a new functionality)
  • Question
  • Other

The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your issue


If the purpose of this issue is a bug report, site support request or you are not completely sure provide the full verbose output as follows:

Add -v flag to your command line you run youtube-dl with, copy the whole output and insert it here. It should look similar to one below (replace it with your log inserted between triple ```):

$ youtube-dl -v <your command line>
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'-v', u'http://www.youtube.com/watch?v=BaW_jenozKcj']
[debug] Encodings: locale cp1251, fs mbcs, out cp866, pref cp1251
[debug] youtube-dl version 2016.04.06
[debug] Python version 2.7.11 - Windows-2003Server-5.2.3790-SP2
[debug] exe versions: ffmpeg N-75573-g1d0487f, ffprobe N-75573-g1d0487f, rtmpdump 2.4
[debug] Proxy map: {}
...
<end of log>

If the purpose of this issue is a site support request please provide all kinds of example URLs support for which should be included (replace following example URLs by yours):


Description of your issue, suggested solution and other information

Explanation of your issue in arbitrary form goes here. Please make sure the description is worded well enough to be understood. Provide as much context and examples as possible.

If work on your issue required an account credentials please provide them or explain how one can obtain them.

Hi, can you add a "--get-size" option ?

@dstftw
Copy link
Collaborator

dstftw commented Apr 12, 2016

No, use filesize metafield from format dictionary of JSON output.

@dstftw dstftw closed this as completed Apr 12, 2016
@sebma
Copy link
Author

sebma commented Apr 12, 2016

How do I print the filesize from the command line using JSON output ?

@dstftw
Copy link
Collaborator

dstftw commented Apr 12, 2016

E.g. parse --dump-json with jq.

@sebma
Copy link
Author

sebma commented Apr 12, 2016

Here is what I get with jq

youtube-dl -f18 -j http://www.youtube.com/watch?v=29S1T7RNHGM | jq '.filesize'
null

Can you be more precise ?

@Hrxn
Copy link

Hrxn commented Apr 13, 2016

I don't have jq right now, but you can test inputs/outputs here: https://jqplay.org/

@yan12125
Copy link
Collaborator

YouTube does not provide all filesize information for all formats. In this example only DASH formats have the size information.

$ youtube-dl -f 133 -j http://www.youtube.com/watch?v=29S1T7RNHGM | jq .filesize 
140629453

@sebma
Copy link
Author

sebma commented Apr 13, 2016

Hi,

If "YouTube does not provide all filesize information for all formats", why not use the "Content-Length" found in the HTTP headers to implement the --get-size option, example:

curl -sI "$(youtube-dl -g -f 18 http://www.youtube.com/watch?v=29S1T7RNHGM)" | awk '/Content-Length:/{printf "%.2f MiB\n", $2/2^20}'

@yan12125
Copy link
Collaborator

Content-Length is not available before you really starts the download. Data reported by -j are extracted from web pages and API responses.

@sebma
Copy link
Author

sebma commented Apr 13, 2016

Why not use a curl subprocess or libcurl to extract Content-Length ?

@yan12125
Copy link
Collaborator

A reason is that querying the filesize for all formats takes a long time. This can be a feature request if the additional time cost is tolerable. If you're interested in only one format - just do the curl call.

@sebma
Copy link
Author

sebma commented Apr 13, 2016

"querying the filesize for all formats" does not make any sense according to me.
I am only interested in only one format.

Why not include the curl or libcurl call in youtube-dl instead ?

@yan12125
Copy link
Collaborator

It's possible with pure Python. This ticket is actually a duplicate of #190 and #6. Sorry for not noticing previous ones at first.

@sebma
Copy link
Author

sebma commented Apr 13, 2016

The problem is that this issue and issue #190 are both closed :(

Shall I subscribe to issue #6 to be kept up to date ?

@yan12125
Copy link
Collaborator

Shall I subscript to issue #6 to be kept up to date ?

yes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants