I have a Youtube playlist, I want to download it but I want youtube-dl to name the files like 1-{name}, 2-{name}, ... n-{name} in order to be able to watch them in the same sequence as original Youtube playlist. In other words I need my downloaded videos to be prefixed with numbers. How can I do that?


The best solution I found is:

youtube-dl -o "%(playlist_index)s-%(title)s.%(ext)s" <playlist_link>
  • 1
    What is the difference between %(playlist_index)s and %(autonumber)s?
    – Flimm
    May 23 '18 at 14:11
  • 8
    @Flimm autonumber uses the number in your download queue, if you restart the download it will be reset. playlist_index uses index of video in playlist and is a better option if you want to stop and resume your download later. May 29 '18 at 5:30
  • Any idea on resolving when playlist index has been changed overtime? I already have alot of downloaded videos but their index is messed up. I don't wish to rename each one of them individually.
    – user919062
    Apr 28 '20 at 13:21

I think using

youtube-dl --auto-number url

will do it.

  • 2
    This is grate, Only one single issue and that's it messes with the names and replace a part of their names with a number. I fixed my issue myself by getting the main idea from your answer. Nov 7 '15 at 10:14
  • @ImanMohamadi Could you please post what you did to fix the issue you mentioned? Oct 31 '16 at 11:25
  • 1
    @IgorStoppa I've already added it as an answer my self and choose it a the best solution. see above. Nov 2 '16 at 5:05
  • 6
    "WARNING: --auto-number is deprecated. Use -o "%(autonumber)s-%(title)s.%(ext)s" instead." Jan 18 '19 at 7:22

Use the -o option with playlist_index and the format <n>d like this:

youtube-dl -o "%(playlist_index)2d - %(title)s.%(ext)s"
#                               .
#                              /|\
#                               |

or 3d or 4d and so on, as in C's printf:

  • Using 2d, you get numbers starting from 01
  • Using 3d, you get numbers starting from 001
  • And so on...
  • 7
    better replace "2d" with "02d" to get e.g. "01 - title" instead of " 1 - title" names.
    – atmin
    Dec 10 '18 at 3:30
  • 1
    @atmin - 2d does that already. Dec 10 '18 at 13:26
  • 2
    it didn't for me, youtube-dl --version2018.12.09
    – atmin
    Dec 11 '18 at 16:10
  • 3
    It didn't for me either. My youtube-dl version is 2019.06.27. Using "02d" worked. Jul 12 '19 at 13:51
  • I am sharing an youtube-dl config file with interesting options including this one Nov 14 '20 at 14:46

Please use the below link to download playlist in numbers in increment at first followed by title of the content

youtube-dl -cio '%(autonumber)s-%(title)s.%(ext)s' 'Paste your playlist link'
  • 2
    How is this answer any better then the accepted answer?
    – Fabby
    Nov 2 '16 at 20:36
  • Try it out and check which is best Nov 5 '16 at 2:47
  • Actually, he can check the man page and see what those options do. As I will
    – userDepth
    Jul 21 '17 at 12:31
  • 2
    c: force resume download -- i: ignore errors (like unavailable video) -- o: output location
    – damccull
    Jul 6 '19 at 18:44

excellent! but it leaves you with a file called 00001nameoffile
so run:

rename 's/000//g' *

to get 01,02,03 etc
For this line below

youtube-dl -cio '%(autonumber)s-%(title)s.%(ext)s' 'Paste your playlist link'

or as one line:

youtube-dl -cio '%(autonumber)s-%(title)s.%(ext)s' url ; rename 's/000//g' *

Not the answer you're looking for? Browse other questions tagged or ask your own question.