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

how do you set variables which were parsed by youtube-dl to external ones belonging to a process started by a script? #14514

Closed
Albretch opened this issue Oct 16, 2017 · 1 comment

Comments

@Albretch
Copy link

@Albretch Albretch commented Oct 16, 2017

It seems my question would be more of a RFE, but, most probably other youtube-dl users have those kinds of needs as well.

youtube-dl internally parses a number of variables defined in the output template:

https://github.com/rg3/youtube-dl/blob/master/README.md#output-template

which can be used within the same Python process, but how do you set variables in the running process? I fancy something like:

--set-xparams={$PL:%(playlist)s, $SZ:%(filesize)s}

PL=""
SZ=""

time(python youtube-dl --simulate --verbose --no-progress --user-agent "${_UA}"
--output "${ODIR}/%(uploader)s/%(title)s""%(id)s.%(ext)s" " -- " "PL27BCE863B6A864E3"
--set-xparams={$PL:%(playlist)s, $SZ:%(totalplsize)s}
) >> "$PL.log" 2>&1

echo " $PL: |$PL|, $SZ: |$SZ|"

where "totalplsize" would be the size of all files belonging to a playlist (if unkown -1 shold be the value)

or, which kinds of tricks do people use to use youtube-dl parsed data in external processes?

$ youtube-dl --version
2017.10.15.1

$ youtube-dl --help | grep "set|get|extern|pars|param"
--xattr-set-filesize Set file xattribute ytdl.filesize with expected file size (experimental)
--external-downloader COMMAND Use the specified external downloader. Currently supports aria2c,avconv,axel,curl,ffmpeg,httpie,wget
--external-downloader-args ARGS Give these arguments to the external downloader
--no-mtime Do not use the Last-modified header to set the file modification time
-g, --get-url Simulate, quiet but print URL
-e, --get-title Simulate, quiet but print title
--get-id Simulate, quiet but print id
--get-thumbnail Simulate, quiet but print thumbnail URL
--get-description Simulate, quiet but print video description
--get-duration Simulate, quiet but print video length
--get-filename Simulate, quiet but print output filename
--get-format Simulate, quiet but print output format
expression with named capture groups may also be used. The parsed parameters replace existing values. Example: --metadata-from-
~
lbrtchx

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 this: [x])
  • Use the Preview tab to see what your issue will actually look like

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2017.10.15.1. 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 2017.10.15.1

Before submitting an issue make sure you have:

  • [ x] At least skimmed through the README, most notably the FAQ and BUGS sections
  • [ x] 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)
  • [ x] Feature request (request for a new functionality)
  • [ x] 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 the -v flag to your command line you run youtube-dl with (youtube-dl -v <your command line>), copy the whole output and insert it here. It should look similar to one below (replace it with your log inserted between triple ```):

[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 2017.10.15.1
[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):

Note that youtube-dl does not support sites dedicated to copyright infringement. In order for site support request to be accepted all provided example URLs should not violate any copyrights.


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 requires account credentials please provide them or explain how one can obtain them.

@dstftw
Copy link
Collaborator

@dstftw dstftw commented Oct 16, 2017

Output template exists for completely different purpose. If you want to extract data from youtube-dl parse JSON output obtained with --dump-json.

@dstftw dstftw closed this Oct 16, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants
You can’t perform that action at this time.