mirror of
https://github.com/ytdl-org/youtube-dl.git
synced 2026-03-02 19:17:00 -05:00
Under new management #24950
Closed
opened 2026-02-21 13:35:12 -05:00 by deekerman
·
173 comments
No Branch/Tag specified
master
pull/30733/head
gh-pages
df-fmt-ext-patch
dlp-fifa-backport
df-test-cleanup
pull/29816/head
download-server
totalwebcasting
rtmp_test
2024.07.11-nightly
2021.12.17
2021.06.06
2021.05.16
2021.04.26
2021.04.17
2021.04.07
2021.04.01
2021.03.31
2021.03.25
2021.03.14
2021.03.03
2021.03.02
2021.02.22
2021.02.10
2021.02.04.1
2021.02.04
2021.01.24.1
2021.01.24
2021.01.16
2021.01.08
2021.01.03
2020.12.31
2020.12.29
2020.12.26
2020.12.22
2020.12.14
2020.12.12
2020.12.09
2020.12.07
2020.12.05
2020.12.02
2020.11.29
2020.11.26
2020.11.24
2020.11.21.1
2020.11.21
2020.11.19
2020.11.18
2020.11.17
2020.11.12
2020.11.01.1
2020.11.01
2020.09.20
2020.09.14
2020.09.06
2020.07.28
2020.06.16.1
2020.06.16
2020.06.06
2020.05.29
2020.05.08
2020.05.03
2020.03.24
2020.03.08
2020.03.06
2020.03.01
2020.02.16
2020.01.24
2020.01.15
2020.01.01
2019.12.25
2019.11.28
2019.11.22
2019.11.05
2019.10.29
2019.10.22
2019.10.16
2019.09.28
2019.09.12.1
2019.09.12
2019.09.01
2019.08.13
2019.08.02
2019.07.30
2019.07.27
2019.07.16
2019.07.14
2019.07.12
2019.07.02
2019.06.27
2019.06.21
2019.06.08
2019.05.20
2019.05.11
2019.04.30
2019.04.24
2019.04.17
2019.04.07
2019.04.01
2019.03.18
2019.03.09
2019.03.01
2019.02.18
2019.02.08
2019.01.30.1
2019.01.30
2019.01.27
2019.01.24
2019.01.23
2019.01.17
2019.01.16
2019.01.10
2019.01.02
2018.12.31
2018.12.17
2018.12.09
2018.12.03
2018.11.23
2018.11.18
2018.11.07
2018.11.03
2018.10.29
2018.10.05
2018.09.26
2018.09.18
2018.09.10
2018.09.08
2018.09.01
2018.08.28
2018.08.22
2018.08.04
2018.07.29
2018.07.21
2018.07.10
2018.07.04
2018.06.25
2018.06.19
2018.06.18
2018.06.14
2018.06.11
2018.06.04
2018.06.02
2018.05.30
2018.05.26
2018.05.18
2018.05.09
2018.05.01
2018.04.25
2018.04.16
2018.04.09
2018.04.03
2018.03.26.1
2018.03.26
2018.03.20
2018.03.14
2018.03.10
2018.03.03
2018.02.26
2018.02.25
2018.02.22
2018.02.11
2018.02.08
2018.02.04
2018.02.03
2018.01.27
2018.01.21
2018.01.18
2018.01.14
2018.01.07
2017.12.31
2017.12.28
2017.12.23
2017.12.14
2017.12.10
2017.12.02
2017.11.26
2017.11.15
2017.11.06
2017.10.29
2017.10.20
2017.10.15.1
2017.10.15
2017.10.12
2017.10.07
2017.10.01
2017.09.24
2017.09.15
2017.09.11
2017.09.10
2017.09.02
2017.08.27.1
2017.08.27
2017.08.23
2017.08.18
2017.08.13
2017.08.09
2017.08.06
2017.07.30.1
2017.07.23
2017.07.15
2017.07.09
2017.07.02
2017.06.25
2017.06.23
2017.06.18
2017.06.12
2017.06.05
2017.05.29
2017.05.26
2017.05.23
2017.05.18.1
2017.05.18
2017.05.14
2017.05.09
2017.05.07
2017.05.01
2017.04.28
2017.04.26
2017.04.17
2017.04.16
2017.04.15
2017.04.14
2017.04.11
2017.04.09
2017.04.03
2017.04.02
2017.03.26
2017.03.24
2017.03.22
2017.03.20
2017.03.16
2017.03.15
2017.03.10
2017.03.07
2017.03.06
2017.03.05
2017.03.02
2017.02.28
2017.02.27
2017.02.24.1
2017.02.24
2017.02.22
2017.02.21
2017.02.17
2017.02.16
2017.02.14
2017.02.11
2017.02.10
2017.02.07
2017.02.04.1
2017.02.04
2017.02.01
2017.01.31
2017.01.29
2017.01.28
2017.01.25
2017.01.24
2017.01.22
2017.01.18
2017.01.16
2017.01.14
2017.01.10
2017.01.08
2017.01.05
2017.01.02
2016.12.31
2016.12.22
2016.12.20
2016.12.18
2016.12.15
2016.12.12
2016.12.09
2016.12.01
2016.11.27
2016.11.22
2016.11.18
2016.11.14.1
2016.11.14
2016.11.08.1
2016.11.08
2016.11.04
2016.11.02
2016.10.31
2016.10.30
2016.10.26
2016.10.25
2016.10.21.1
2016.10.21
2016.10.19
2016.10.16
2016.10.12
2016.10.07
2016.10.02
2016.09.27
2016.09.24
2016.09.19
2016.09.18
2016.09.15
2016.09.11.1
2016.09.11
2016.09.08
2016.09.04.1
2016.09.04
2016.09.03
2016.08.31
2016.08.28
2016.08.24.1
2016.08.24
2016.08.22
2016.08.19
2016.08.17
2016.08.13
2016.08.12
2016.08.10
2016.08.07
2016.08.06
2016.08.01
2016.07.30
2016.07.28
2016.07.26.2
2016.07.26.1
2016.07.26
2016.07.24
2016.07.22
2016.07.17
2016.07.16
2016.07.13
2016.07.11
2016.07.09.2
2016.07.09.1
2016.07.09
2016.07.07
2016.07.06
2016.07.05
2016.07.03.1
2016.07.03
2016.07.02
2016.07.01
2016.06.30
2016.06.27
2016.06.26
2016.06.25
2016.06.23.1
2016.06.23
2016.06.22
2016.06.20
2016.06.19.1
2016.06.19
2016.06.18.1
2016.06.18
2016.06.16
2016.06.14
2016.06.12
2016.06.11.3
2016.06.11.2
2016.06.11.1
2016.06.11
2016.06.05
2016.06.04
2016.06.03_tmp
2016.06.03
2016.06.02
2016.05.30.2
2016.05.30.1
2016.05.30
2016.05.21.2
2016.05.21.1
2016.05.21
2016.05.16
2016.05.10
2016.05.01
2016.04.24
2016.04.19
2016.04.13
2016.04.06
2016.04.05
2016.04.01
2016.03.27
2016.03.26
2016.03.25
2016.03.18
2016.03.14
2016.03.06
2016.03.01
2016.02.27
2016.02.22
2016.02.13
2016.02.10
2016.02.09.1
2016.02.09
2016.02.05.1
2016.02.05
2016.02.04
2016.02.01
2016.01.31
2016.01.29
2016.01.27
2016.01.23
2016.01.15
2016.01.14
2016.01.09
2016.01.01
2015.12.31
2015.12.29
2015.12.23
2015.12.21
2015.12.18
2015.12.13
2015.12.10
2015.12.09
2015.12.06
2015.12.05
2015.11.27.1
2015.11.27
2015.11.24
2015.11.23
2015.11.21
2015.11.19
2015.11.18
2015.11.15
2015.11.13
2015.11.10
2015.11.02
2015.11.01
2015.10.24
2015.10.23
2015.10.18
2015.10.16
2015.10.13
2015.10.12
2015.10.09
2015.10.06.2
2015.10.06.1
2015.10.06
2015.09.28
2015.09.22
2015.09.09
2015.09.03
2015.08.28
2015.08.23
2015.08.16.1
2015.08.16
2015.08.09
2015.08.06.1
2015.08.06
2015.07.28
2015.07.21
2015.07.18
2015.07.07
2015.07.04
2015.06.25
2015.06.15
2015.06.04.1
2015.06.04
2015.05.29
2015.05.20
2015.05.15
2015.05.10
2015.05.04
2015.05.03
2015.04.28
2015.04.26
2015.04.17
2015.04.09
2015.04.03
2015.03.28
2015.03.24
2015.03.18
2015.03.15
2015.03.09
2015.03.03.1
2015.03.03
2015.02.28
2015.02.26.2
2015.02.26.1
2015.02.26
2015.02.24.2
2015.02.24.1
2015.02.24
2015.02.23.1
2015.02.23
2015.02.21
2015.02.20
2015.02.19.3
2015.02.19.2
2015.02.19.1
2015.02.19
2015.02.18.1
2015.02.18
2015.02.17.2
2015.02.17.1
2015.02.17
2015.02.16.1
2015.02.16
2015.02.11
2015.02.10.5
2015.02.10.4
2015.02.10.3
2015.02.10.2
2015.02.10.1
2015.02.10
2015.02.09.3
2015.02.09.2
2015.02.09.1
2015.02.09
2015.02.08
2015.02.06
2015.02.04
2015.02.03.1
2015.02.03
2015.02.02.5
2015.02.02.4
2015.02.02.3
2015.02.02.2
2015.02.02.1
2015.02.02
2015.02.01
2015.01.30.2
2015.01.30.1
2015.01.30
2015.01.25
2015.01.23.4
2015.01.23.3
2015.01.23.2
2015.01.23.1
2015.01.23
2015.01.22
2015.01.16
2015.01.15.1
2015.01.15
2015.01.11
2015.01.10.2
2015.01.10.1
2015.01.10
2015.01.09.2
2015.01.09.1
2015.01.09
2015.01.08
2015.01.07.2
2015.01.07.1
2015.01.07
2015.01.05.1
2015.01.05
2015.01.04
2015.01.03
2015.01.02
2015.01.01
2014.12.17.2
2014.12.17.1
2014.12.17
2014.12.16.2
2014.12.16.1
2014.12.16
2014.12.15
2014.12.14
2014.12.13.1
2014.12.13
2014.12.12.7
2014.12.12.6
2014.12.12.5
2014.12.12.4
2014.12.12.3
2014.12.12.2
2014.12.12.1
2014.12.12
2014.12.11
2014.12.10.3
2014.12.10.2
2014.12.10.1
2014.12.10
2014.12.06.1
2014.12.06
2014.12.04.2
2014.12.04.1
2014.12.04
2014.12.03
2014.12.01
2014.11.27
2014.11.26.4
2014.11.26.3
2014.11.26.2
2014.11.26.1
2014.11.26
2014.11.25.1
2014.11.25
2014.11.24
2014.11.23.1
2014.11.23
2014.11.21.1
2014.11.21
2014.11.20.1
2014.11.20
2014.11.16
2014.11.15.1
2014.11.15
2014.11.14
2014.11.13.3
2014.11.13.2
2014.11.13.1
2014.11.13
2014.11.12.1
2014.11.12
2014.11.09
2014.11.04
2014.11.02.1
2014.11.02
2014.10.30
2014.10.29
2014.10.27
2014.10.26.2
2014.10.26.1
2014.10.26
2014.10.25
2014.10.24
2014.10.23
2014.10.18
2014.10.15
2014.10.13
2014.10.12
2014.10.05.2
2014.10.05.1
2014.10.05
2014.10.02
2014.09.29.2
2014.09.29.1
2014.09.29
2014.09.28.1
2014.09.28
2014.09.25
2014.09.24.1
2014.09.24
2014.09.22.1
2014.09.22
2014.09.19
2014.09.18
2014.09.16.1
2014.09.16
2014.09.15.1
2014.09.15
2014.09.14.3
2014.09.14.2
2014.09.14.1
2014.09.14
2014.09.12
2014.09.10.1
2014.09.10
2014.09.06
2014.09.04.3
2014.09.04.2
2014.09.04.1
2014.09.04
2014.09.01.2
2014.09.01.1
2014.09.01
2014.08.29
2014.08.28.2
2014.08.28.1
2014.08.28
2014.08.27.1
2014.08.27
2014.08.26
2014.08.25.3
2014.08.25.2
2014.08.25.1
2014.08.25
2014.08.24.6
2014.08.24.5
2014.08.24.4
2014.08.24.3
2014.08.24.2
2014.08.24.1
2014.08.24
2014.08.23
2014.08.22.3
2014.08.22.2
2014.08.22.1
2014.08.22
2014.08.21.3
2014.08.21.2
2014.08.21.1
2014.08.21
2014.08.10
2014.08.05
2014.08.02.1
2014.08.02
2014.07.30
2014.07.25.1
2014.07.25
2014.07.24
2014.07.23.2
2014.07.23.1
2014.07.23
2014.07.22
2014.07.21
2014.07.20.2
2014.07.20.1
2014.07.20
2014.07.15
2014.07.11.3
2014.07.11.2
2014.07.11.1
2014.07.11
2014.07.10
2014.06.26
2014.06.25
2014.06.24.1
2014.06.24
2014.06.19
2014.06.16
2014.06.09
2014.06.07
2014.06.04
2014.06.02
2014.05.31.4
2014.05.31.3
2014.05.31.2
2014.05.31.1
2014.05.31
2014.05.30.1
2014.05.30
2014.05.19
2014.05.17
2014.05.16.1
2014.05.16
2014.05.13
2014.05.12
2014.05.05
2014.04.30.1
2014.04.30
2014.04.21.6
2014.04.21.5
2014.04.21.4
2014.04.21.3
2014.04.21.2
2014.04.21.1
2014.04.21
2014.04.19
2014.04.13
2014.04.11.2
2014.04.11.1
2014.04.11
2014.04.07.4
2014.04.07.3
2014.04.07.2
2014.04.07.1
2014.04.07
2014.04.04.7
2014.04.04.6
2014.04.04.5
2014.04.04.4
2014.04.04.2
2014.04.04.3
2014.04.04.1
2014.04.04
2014.04.03.3
2014.04.03.2
2014.04.03.1
2014.04.03
2014.04.02
2014.04.01.3
2014.04.01.2
2014.04.01.1
2014.04.01
2014.03.30.1
2014.03.30
2014.03.29
2014.03.28
2014.03.27.1
2014.03.27
2014.03.25.1
2014.03.25
2014.03.24.5
2014.03.24.4
2014.03.24.3
2014.03.24.2
2014.03.24.1
2014.03.24
2013.03.24.2
2013.03.24.1
2013.03.24
2014.03.23
2014.03.21.5
2014.03.21.4
2014.03.21.3
2014.03.21.2
2014.03.21.1
2014.03.21
2014.03.20
2014.03.18.1
2014.03.18
2014.03.17
2014.03.12
2014.03.11
2014.03.10
2014.03.07.1
2014.03.07
2014.03.06
2014.03.04.2
2014.03.04.1
2014.03.04
2014.03.03
2014.02.28
2014.02.27.1
2014.02.27
2014.02.26
2014.02.25.1
2014.02.25
2014.02.24
2014.02.22.1
2014.02.22
2014.02.21.1
2014.02.21
2014.02.20
2014.02.19.1
2014.02.19
2014.02.17
2014.02.13
2014.02.10
2014.02.08.2
2014.02.08.1
2014.02.08
2014.02.06.3
2014.02.06.2
2014.02.06.1
2014.02.06
2014.02.05
2014.02.04.1
2014.02.04
2014.02.03.1
2014.02.03
2014.01.30.2
2014.01.30.1
2014.01.30
2014.01.29
2014.01.28.1
2014.01.28
2014.01.27.2
2014.01.27.1
2014.01.27
2014.01.23.4
2014.01.23.3
2014.01.23.2
2014.01.23.1
2014.01.23
2014.01.22.5
2014.01.22.4
2014.01.22.3
2014.01.22.2
2014.01.22.1
2014.01.22
2014.01.21.1
2014.01.21
2014.01.20
2014.01.17.2
2013.01.17.1
2013.01.17
2014.01.08
2014.01.07.5
2014.01.07.4
2014.01.07.3
2014.01.07.2
2014.01.07.1
2014.01.07
2014.01.06.1
2014.01.06
2014.01.05.6
2014.01.05.5
2014.01.05.4
2014.01.05.3
2014.01.05.1
2014.01.05
2014.01.03
2013.12.26
2013.12.23.4
2013.12.23.3
2013.12.23.2
2013.12.23.1
2013.12.23
2013.12.20
2013.12.17.2
2013.12.17.1
2013.12.17
2013.12.16.7
2013.12.16.6
2013.12.16.5
2013.12.16.4
2013.12.16.3
2013.12.16.2
2013.12.16.1
2013.12.16
2013.12.11.2
2013.12.11.1
2013.12.11
2013.12.10
2013.12.09.4
2013.12.09.3
2013.12.09.2
2013.12.09.1
2013.12.09
2013.12.08.1
2013.12.08
2013.12.04
2013.12.03
2013.12.02
2013.11.29
2013.11.28.1
2013.11.28
2013.11.26
2013.11.25.3
2013.11.25.2
2013.11.25.1
2013.11.25
2013.11.24.1
2013.11.24
2013.11.22.2
2013.11.22.1
2013.11.22
2013.11.21
2013.11.20
2013.11.19
2013.11.18.1
2013.11.18
2013.11.17
2013.11.15.1
2013.11.15
2013.11.13
2013.11.11
2013.11.07
2013.11.06.1
2013.11.06
2013.11.03
2013.11.02
2013.10.30
2013.10.29
2013.10.28
2013.10.23.2
2013.10.23.1
2013.10.23
2013.10.22
2013.10.18.2
2013.10.18.1
2013.10.18
2013.10.17
2013.10.15
2013.10.09
2013.10.07
2013.10.06
2013.10.04
2013.10.01.1
2013.10.01
2013.09.29
2013.09.24.2
2013.09.24.1
2013.09.24
2013.09.20.1
2013.09.20
2013.09.17
2013.09.16
2013.09.12
2013.11.09
2013.09.10
2013.09.07
2013.09.06.1
2013.09.06
2013.09.05
2013.09.04
2013.08.30
2013.08.29
2013.08.28.1
2013.08.28
2013.08.27
2013.08.23
2013.08.22
2013.08.21
2013.08.17
2013.08.15
2013.08.14
2013.08.09
2013.08.08.1
2013.08.08
2013.08.02
2013.07.31
2013.07.25.2
2013.07.25.1
2013.07.25
2013.07.24.2
2013.07.24.1
2013.07.24
2013.07.23.1
2013.07.23
2013.07.19
2013.07.18
2013.07.17.1
2013.07.17
2013.07.12
2013.07.11
2013.07.10
2013.07.08.1
2013.07.08
2013.07.07.01
2013.07.07
2013.07.05
2013.07.04
2013.07.02
2013.06.34.4
2013.06.34.3
2013.06.34.2
2013.06.34.1
2013.06.34
2013.06.33
2013.06.32
2013.06.31
2013.06.30
2013.06.29
2013.06.28
2013.06.27
2013.06.26
2013.06.25
2013.06.23
2013.06.21
2013.05.23
2013.05.14
2013.05.13
2013.05.10
2013.05.07
2013.05.06
2013.05.05
2013.05.04
2013.05.01
2013.04.31
2013.04.30
2013.04.28
2013.04.27
2013.04.22
2013.04.21
2013.04.18
2013.04.11
2013.04.03
2013.03.29
2013.02.25
2013.02.22
2012.02.22
2013.02.19
2013.02.18
2013.02.02
2013.02.01
2013.01.28
2013.01.27
2013.01.13
2013.01.12
2012.12.99
2013.01.11
2013.01.08
2013.01.06
2013.01.02
2012.12.11
2012.11.29
2012.11.28
2012.11.27
2012.11.17
2012.10.09
2012.09.27
2012.02.27
2012.02.26
2012.01.08b
2012.01.08
2012.01.05
2011.12.18
2011.12.15
2011.12.08
2011.11.23
2011.11.22
2011.11.21
2011.10.19
2011.09.30
2011.09.27
2011.09.18c
2011.09.18b
2011.09.18
2011.09.17
2011.09.16
2011.09.15
2011.09.14
2011.09.13
2011.08.04
2011.03.29
2011.02.25c
2011.02.25b
2011.02.25
2011.01.30
2010.12.09
2010.11.19
2010.10.24
2010.10.03
2010.08.04
2010.07.24
2010.07.22
2010.07.14
2010.06.06
2010.04.04
2010.04.03
2010.04.02
2010.03.13
2010.03.07
2010.02.13
2010.01.19
2010.01.06
2010.01.05
2009.12.26
2009.09.13
2009.09.08
2009.08.08
2009.06.29
2009.05.30
2009.05.25
2009.05.23
2009.05.13
2009.05.11
2009.04.25
2009.04.06
2009.03.28
2009.03.03
2009.02.07
2009.01.31
2008.11.01
2008.10.16
2008.09.20
2008.08.09
2008.07.22
Labels
Clear labels
DRM
Good first issue
account-needed
broken-IE
bug
build/update
cant-reproduce
clarification-needed
documentation
duplicate
external-bugs
fixed
geo-restricted
gh-pages
help-wanted
hls
incomplete
invalid
linux
mpd
not-a-bug
nsfw
offtopic
out-of-scope
outdated-version
patch-available
pending-fixes
php
postprocessors
question
regression
request
request
site-support-request
site-update-request
spam
subtitles
test-needed
tv-provider-account-needed
windows
won't fix
yt-dlp
No labels
DRM
Good first issue
account-needed
broken-IE
bug
build/update
cant-reproduce
clarification-needed
documentation
duplicate
external-bugs
fixed
geo-restricted
gh-pages
help-wanted
hls
incomplete
invalid
linux
mpd
not-a-bug
nsfw
offtopic
out-of-scope
outdated-version
patch-available
pending-fixes
php
postprocessors
question
regression
request
request
site-support-request
site-update-request
spam
subtitles
test-needed
tv-provider-account-needed
windows
won't fix
yt-dlp
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set.
Reference
starred/youtube-dl-ytdl-org#24950
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @dirkf on GitHub (Jan 29, 2022).
Thanks to @rg3 who created this program the project has a new maintainer.
Also, many thanks to @dstftw and @remitamine for holding the fort over the last several years.
I hope that we'll be able to make a new release soon and subsequently keep the program more up-to-date than has been the case for the last few months.
The project has a fork https://github.com/yt-dlp/yt-dlp that offers a lot of extra functions but demands an up-to-date Python version. This project will continue to target Python version 2.6, 2.7, or 3.2+, at least until no-one complains about 2.6 compatibility.
PRs are very welcome, although there is a significant back-log to be handled. Back-ports of yt-dlp features are also welcome.
Finally, I'd encourage anyone else who is interested in sharing maintenance duties to establish a track record and make themselves known. We want to keep this popular project alive with a community of future maintainers.
@Twangist commented on GitHub (Jan 29, 2022):
Supporting defunct versions of Python seems like a great way to handicap the project and a total waste of time.
@boehs commented on GitHub (Jan 29, 2022):
This repository should just become yt-dlp tbh
@VixieTSQ commented on GitHub (Jan 29, 2022):
this is ridiculous. Python 2 is dead
@pukkandan commented on GitHub (Jan 29, 2022):
By now, yt-dlp has accumulated various incompatibilities with youtube-dl and it is no longer a drop-in replacement for many users. So youtube-dl can't just "become yt-dlp". Since I do not intend to revert these changes, it is best that both projects co-exist.
If you like to use yt-dlp, use it. And if you prefer youtube-dl, use this. It is a waste of everyone's time to post issues/comments asking for either project to "become" the other
@ligix commented on GitHub (Jan 29, 2022):
fyi python 2 reached EOL 2 years ago, before windows 7 did.
https://www.python.org/doc/sunset-python-2/
@boehs commented on GitHub (Jan 29, 2022):
fair enough! Consider mentioning dlp in the readme though?
@dirkf commented on GitHub (Jan 29, 2022):
@Twangist and supporters, please direct your Python 3.7+ enthusiasm to the yt-dlp project, as @pukkandan says.
No-one would bother maintaining two versions of a program if there wasn't a good reason. There are still applications where older Python versions have to be supported: among the known cases are those where that's all the platform offers, and where yt-dl is being embedded in a larger chunk of Python 2 code that no-one is going to port.
This project has already established a compatibility library that largely allows you to code for Python 3 while remaining compatible with Python 2, by using the library's compat_xxx types and avoiding novel syntax elements (
nonlocal,yield from, etc), for which there are known work-arounds. With this infrastructure, and provided that yt-dl and yt-dlp continue to support the same extractor API and library functions we can avoid wasted effort on either side.The project Readme should definitely be updated, in due course, as @boehs suggests.
@chrizilla commented on GitHub (Jan 29, 2022):
Wouldn't merging the two projects be a better use of resources
compared to the overhead/redundancy of maintaining two separate projects ?
@dirkf commented on GitHub (Jan 29, 2022):
Essentially https://github.com/ytdl-org/youtube-dl/issues/30568#issuecomment-1024991879 said all that needed to be said. But...
Understandably, yt-dlp wants to be able to rely on supported Python versions (and 3.6), which means that we need to keep yt-dl up-to-date to address the cases I described above that can't practically use those versions, desirable as it might be.
For people concerned that Python 2 is a couple of years beyond EOL, one case that I support could survive until 2038, or the end of DVB-T2 broadcasting if that comes sooner. That's the timescale of deployed embedded applications, a very different world from 'What version is Chrome today?' on your personal computing device.
Maybe some future Python version supported by yt-dlp will diverge so far that common development becomes impractical. This isn't the case now.
@dimitarvp commented on GitHub (Jan 29, 2022):
Appreciate the openness, @dirkf. I personally wasn't aware that one of
youtube-dl's goals was Python 2 compatibility so thanks for clearing that up for us.I am not and will not ever advocate for projects closely mirroring each other. But, in case that's a useful user feedback for you: my main reason for moving to
yt-dlpwas (a) SponsorBlock API support and (b) external downloaders. If these sound like an interesting thing to support for you then I believe others would love to see them implemented as well. If not, the project is still super valuable in its own right.Thanks for the update. It's appreciated.
@spectrapulse commented on GitHub (Jan 29, 2022):
Wouldn't it be better to either release an LTS or to set a date when support for everything below 3.6 is dropped.
Motivating people to stay on EOL versions of Python carries a lot of security risks, not just for this project but also for projects that depend on it.
And I would assume that older projects would most likely already have their dependencies version locked anyways.
@Evernow commented on GitHub (Jan 29, 2022):
Python 2 is end of life and no longer receiving any security updates, you supporting Python 2 will just motivate others to not move on from insecure unmaintained dependencies.
You'll also be splitting up manpower by not just encouraging use of yt-dlp, which will affect everyone, not just those who insist on not realizing the past is the past.
@gamer191 commented on GitHub (Jan 30, 2022):
To be fair, yt-dlp usually implements all of youtube-dl's commits pretty quickly (unless they conflict with yt-dlp), so youtube-dl continuing to be maintained won't negatively affect yt-dlp that much. Also, https://github.com/ytdl-org/youtube-dl/issues/30568#issuecomment-1025012255 said that youtube-dl's readme will be updated to mention yt-dlp
@Earnestly commented on GitHub (Jan 30, 2022):
Who is @dirkf?
@dirkf commented on GitHub (Jan 30, 2022):
Just your standard Internet hound.
Just to confirm, Python 2 (or 2 and < 3.6) compatibility wasn't originally a goal of the project since Python 3 appeared only after the project was created, but that level of compatibility is a goal now, since yt-dlp exists for more recent Python versions. And anyone who can practically do so should run a supported Python version, on which yt-dl should run equally well.
@gamer191 commented on GitHub (Jan 30, 2022):
May I suggest going one step further and informing the user about yt-dlp every time they run
youtube-dl --update, if youtube-dl detects that it's running on python 3.6 or above. The user would have to also be informed about the slight differences between youtube-dl and yt-dlp, and that if they update they need to move their config file. Obviously this would be controversial and have downsides, one of which is that it may result in yt-dlp users accidentally reporting issues on the youtube-dl repository.EDIT: Sorry boehs for the ping, it was an accident
@Lesmiscore commented on GitHub (Jan 30, 2022):
I'd suggest you to unpin (or move to the lowest) #27013 because its title is a bit confusing.
Anyway, I'd appreciate youtube-dl now have a new maintainer.
@dirkf commented on GitHub (Jan 30, 2022):
@gamer191 wrote:
You can suggest it, but I think just updating the documentation will be quite enough. Feel free to try your luck with a PR, though, but I don't fancy your chances.
@Lesmiscore wrote:
Good point, it's not exactly news now, and I hope it won't be again.
@nocturn9x commented on GitHub (Jan 30, 2022):
Stubbornly supporting products that are way past their due date is absurd. Stop poking at dead bodies and embrace change rather than avoid it at all cost.
Do what the CPython team did: grow some balls, deprecate and move on. People will be angry, it always happens. But enough people are angry now with this project supporting a Python release that is 12 years old.
It's not like deprecated software suddendly stops working. It just isn't maintained anymore: if anyone still needs Python 2.7 support it's either their fault or their problem to deal with and certainly not a good reason to stifle the projects' growth, creating confusion and splitting manpower across 2 projects doing basically the same thing
@gamer191 commented on GitHub (Jan 30, 2022):
Nah, I don't have enough coding skills to do that. If anyone with more skills likes my idea though they're welcome to PR it, but it only received 4 "likes", so I agree that it probably won't be merged in
@Earnestly commented on GitHub (Jan 30, 2022):
While many of you are debating the merits of python2 I see none yet questioning who the "new management" are; where they are; who now has access to the repo, etc.
@dirkf commented on GitHub (Jan 30, 2022):
See https://github.com/ytdl-org for details of the yt-dl organisation and its current members.
@dimitarvp commented on GitHub (Jan 30, 2022):
"This organization has no public members. You must be a member to see who’s a part of this organization."
Not enlightening.
@gamer191 commented on GitHub (Jan 30, 2022):
CC @dirkf
@dirkf commented on GitHub (Jan 30, 2022):
Indeed. So I don't think I'm giving anything away by listing the 6 members as myself, the previous two active maintainers, two of the active maintainers before them, and the project creator.
@dimitarvp commented on GitHub (Jan 30, 2022):
I was about to say that earlier.
I personally couldn't care less if you want to use Python 2.6, PHP 4.1 or Perl 5.0. I care whether the project is in the hands of people who believe in its original mission.
@dirkf Pretty sure a lot of people will be watching for some, a-hem, creatively named "experience-improving telemetry" PRs, if you catch my drift.
@spectrapulse commented on GitHub (Jan 30, 2022):
What does telemetry have to do with any of this? People here are talking about supporting an EOL platform and you want to randomly involve telemetry with it? wtf.
@garoto commented on GitHub (Jan 30, 2022):
I'm willing to bet money none of these people on this issue bitching about the new maintainer credentials or whatnot, can name a single past constant contributor (dstftw doesn't count) from the top of their heads. Typical antagonizing behavior from fiery FOSS zealots with too much time on their hands.
@kidonng commented on GitHub (Jan 31, 2022):
I remember the creator has mentioned some past maintainers in their blog, so the organization member should be something like:
@dirkf commented on GitHub (Jan 31, 2022):
5/6 Good work, though more slashes than necessary.
@Lesmiscore commented on GitHub (Jan 31, 2022):
Writing here my hope (request?) here since it's not worth to make an issue just for it I think:
I'd like you to make a document about how EXE for youtube-dl was (and will be) built.
I know this repo has wine-py2exe.sh script and I tried it, but I can't make it work since no one left document except the script.
Thanks
edit: #30644
@dirkf commented on GitHub (Jan 31, 2022):
See
github.com/ytdl-org/youtube-dl@af9e72507e (commitcomment-65689220).Initially it'll have to be done as before (if that can be made to work) but I like the idea of putting the whole process on GH, which would also be some sort of self-documentation.
@jxu commented on GitHub (Feb 1, 2022):
I was gonna say, there sure are a lot of people who are complaining about Python 2.6 compatability without ever having contributed to the codebase themselves!
@rautamiekka commented on GitHub (Feb 1, 2022):
As equally invalid reason as "
latest" is an invalid version.@nocturn9x commented on GitHub (Feb 1, 2022):
I have had enough issues with integrating youtube-dl in my projects, I can't imagine how painful it would be to try contributing to it if Python 2.6 compatibility is one of the key goals...
@jxu commented on GitHub (Feb 1, 2022):
Have you tried PRs? Anyway all this discussion about compatibility (including my own comment) should go into its own issue. Maybe GitHub has an announcement mechanism to use instead of just the issue tracker.
@dirkf commented on GitHub (Feb 1, 2022):
I wondered, but followed the existing practice. Anyhow, this issue is a good honeypot for such discussions.
@pukkandan commented on GitHub (Feb 1, 2022):
There is no announcement mechanism. Some repos post announcements in readme or release notes, but it's pretty much standard practice to use pinned issue for them. Github has "discussions", but pinned issues have much more discoverability than (pinned) discussions from my experience
@philcerf commented on GitHub (Feb 3, 2022):
It’s really just very very bad to have both projects, as it will cause resources (developer time, bug reports, time to port features from on to the other) dispersed on either of them.
Worse, chances are (unfortunately) good that not simply one of them will sooner or later die (like it was effectively the case with LibreOffice vs. OpenOffice).
youtube-dl/yt-dlp is by nature software that's quite volatile and doesn't need to run e.g. on servers that shouldn't change a lot for years... so wherever it's used, one likely has current Python and 3rd party users could adapt to yt-dlp (or have already done so).
So... wouldn't it be much better to simply join yt-dlp?
@jxu commented on GitHub (Feb 3, 2022):
Or merge yt-dlp into this project. Just because the name youtube-dl is more catchy and well-known.
For the record I don't think python 2 support is necessary. I imagine youtube-dl is running mostly on servers and home computers with ample python 3 support. For the embedded machines powerful enough to run python (and not just C and assembly), well they should be able to compile or have python3 binaries.
@dirkf commented on GitHub (Feb 3, 2022):
Your imagination is limited, but fortunately unnecessary as actual examples where Python 2 support is required or useful were provided, including at least one platform that won't change for decades, if ever.
Compared to a word processor, yt-dl has to operate in a rapidly changing, not to say adversarial, environment where a frozen version would quickly become useless. Whereas word processor functionality has been static or degraded since Word 2000.
Also, "why is there only one Monopolies Commission"?
@nocturn9x commented on GitHub (Feb 3, 2022):
You know they came up with a word for that: it's called deprecation. Keep the Python 2 compatible version around, but focus development efforts and resources towards a Python3-only version. I don't see why the project should be weighed down by some dead-end platform
@dirkf commented on GitHub (Feb 3, 2022):
Except that both projects are being developed together, that's the plan. Nothing should go to waste.
@nocturn9x commented on GitHub (Feb 3, 2022):
Except that splitting the manpower between two projects is less efficient. Duh
@jxu commented on GitHub (Feb 3, 2022):
So you propose youtube-dl as more compatible and yt-dlp as the development project? That is a possibility.
@nocturn9x commented on GitHub (Feb 3, 2022):
The proposal would be to deprecate the current youtube-dl and move all future development efforts to yt-dlp
@jxu commented on GitHub (Feb 3, 2022):
I haven't kept up to date on how much development effort each project gets.
@Evernow commented on GitHub (Feb 3, 2022):
@dirkf If you think that Python 2 support is worth it just because of how many people need it, then why not make a github poll asking if people actually need it? Would be a good way to prove you're not just speaking out of self interest.
@jxu commented on GitHub (Feb 3, 2022):
It's not about self interest but a common problem of compatibility versus using newer languages and libraries. Also a poll should be limited to recent top contributors or and end user survey.
@dirkf commented on GitHub (Feb 3, 2022):
I'm definitely speaking out of self-interest, but not only that, as previously stated.
My position is settled for moment in line with https://github.com/ytdl-org/youtube-dl/issues/30568#issuecomment-1024991879 and
https://github.com/ytdl-org/youtube-dl/issues/30568#issuecomment-1025018207.
@Evernow commented on GitHub (Feb 3, 2022):
What's wrong with instead of the decision being only up to you but instead leave it up for others to have a vote in the matter? A survey for contributors and end users sounds reasonable.
@dirkf commented on GitHub (Feb 3, 2022):
Feel free to run your project on those lines, or to suggest that at yt-dlp. There are more important practical issues to be addressed here.
@garoto commented on GitHub (Feb 3, 2022):
Doing software development driven by public "polls" sounds like a really bad idea to me.
@jxu commented on GitHub (Feb 3, 2022):
That comes with the territory when there's not a reliable set of core developers.
@JulienPalard commented on GitHub (Feb 3, 2022):
I'll not give my point of view about Python 2 support, but if some data is needed to help making a decision about when to stop in the future, I have actual data from PyPI downloads that I update monthly:
=> https://github.com/JulienPalard/python-versions
The graph don't show Python 2.6 (it's stuffed in "other") but running the script shows a table with many details, in it Python 2.6 is at 0.000% downloads since 2021-06, as seen by PyPI.
@dirkf commented on GitHub (Feb 3, 2022):
Interesting stats, although the "problem" installations aren't going to show on PyPi, and may just be running this one Python program, updated by the distro package manager.
yt-dlp's requirements are met by 80% or so of PyPi downloads.
As far as 2.6 is concerned it's possible that some incompatibilities have crept in without anyone complaining, since the automated tests don't test 2.6.
My research highlights these as being the differences introduced in 2.7, plus a few more minor items:
,thousands separator format specifiermemoryviewargparselogging.config.dictConfigdictviewkeys(),viewvalues(),viewitems()(dead-end synonyms for Py3 keys(), values(), items())str.format()replacement fields ('abc{}def{}'vs'abc{0}def{1}')bit_lengthmethod ofintandlong@classmethodand@staticmethodwrapped methods expose the wrapped function as__func__.A simple check confirms that there are no instances of OrderedDict or dict.viewxxxs(), but surely there must be a dictionary comprehension somewhere in yt-dl?
@pukkandan commented on GitHub (Feb 3, 2022):
There are dict comprehensions. They currently use the pattern
dict((k, v) for ...). But imho, it is not worth just dropping 2.6. The maintenance cost b/w 2.6-2.7 is very small.Edit: unless we want to switch to
optparse. But I doubt anyone wants to put in the effort to actually do thatSame reason why yt-dlp has no plans to drop 3.6 compat despite it being EOL - the benefits of 3.7 are minimal
@gamer191 commented on GitHub (Feb 4, 2022):
Just wondering, does YouTube-DL have any plans to drop official support for avconv, like yt-dlp did? (Personally, I don’t use avconv)
@chrizilla commented on GitHub (Feb 4, 2022):
and thus maybe more exposed to DCMA action by Google/youtube ?
@EvanCarroll commented on GitHub (Feb 4, 2022):
It sounds like there is some admission that this project will not be the standard bearer for YouTube downloading. I just hope that if Python2 and a different set of defaults is all that is justifying this projects existence that the docs are clear about that, and point to yt-dlp as the replacement.
Personally, I don't see the value in what is being done. I'll point to Mikeal's post on Request for how a project should end
I think that's the real point here. This project will serve to confuse new developers, and the community is better if it fades away.
@nocturn9x commented on GitHub (Feb 4, 2022):
Very well said
@dirkf commented on GitHub (Feb 4, 2022):
In so far as any plans exist, removing code that handles avconv wouldn't be in them. Possibly some new feature might be conditional on a newer version of ffmpeg and not avconv.
@dirkf commented on GitHub (Feb 4, 2022):
Whereas the newer non-2.6 version would be
{(k, v) for ...}@FranciscoPombal commented on GitHub (Feb 4, 2022):
So your plan is to turn youtube-dl into the OpenOffice of web video downloaders, great stuff. As if the FOSS community needed yet another big slap in the face like that.
Other people above have already explained clearly enough why insisting on supporting EOL Python versions is a bad idea, so I'm not going to repeat them.
This project has grown well beyond the pet-project "if-you-don't-like-it-fork-it-or-don't-use-it" status. The community that grew around youtube-dl was never here for the project's support of Python 2.6. The implicit "social contract" of this project was never one of favoring extreme backwards compatibility over everything else - including to the detriment of ease of development, developer experience and contributing to fragmentation across two projects.
Whether you like it or not, if your "self-interest" is to move in the direction of supporting legacy EOL stuff, then by all means, fork youtube-dl into something called "youtube-dl-oldpy" or something, and continue your work there. It is clear that using this repo for that niche purpose is not in the community's best interest. The right thing to do for the community is to continue the development of the non-legacy project under the most widely known "brand", and not create additional confusion. More precisely, this is what I would do:
or, alternatively:
Care to elaborate on that? What are those use cases? Should the needs of those who have those use cases be imposed against the wishes and best-interests of the remaining 99% of the community?
As others have said before, if there's people stuck with EOL stuff, that's their problem. If they don't want/are too lazy to do the right thing and upgrade, they can either hope for some generous soul such as you to maintain a separate fork that maintains compatibility, or actually pay someone to do it (like a support contract).
You don't have to feel bad for changing your stance on this subject. I'm sure you've heard of this famous example. Kovid is a great developer and an awesome person for his many contributions to FOSS, but everyone makes mistakes and says dumb things every once in a while. The community is there to call that out when it happens, and you'll still have its support after the drama blows over - unless you stubbornly and irrationally insist on the wrong decision for the project. Nobody wants Apple-like "courage" in FOSS.
@dirkf commented on GitHub (Feb 4, 2022):
Archiving the project would amount to deleting it since it would not be updated in line with changes in the web environment.
Generally, people who want to advance the project should submit their PRs that follow the project's coding conventions for consideration either here or at yt-dlp. The project can sort out any Py2.x issues, where possible.
Or, https://www.youtube.com/watch?v=vmMls5bNOPw.
@nocturn9x commented on GitHub (Feb 4, 2022):
You should've told everyone to STFU before trying to defend your position on supporting a dead-end legacy language. At least it would've been clear to everyone reading here that the sole reason for this is "wah wah the project is mine and I take the decisions and if you don't like it just fork it and stfu!1!!11!!"
@dirkf commented on GitHub (Feb 4, 2022):
Also, from the linked famous example:
Hahaha.
Let me state categorically that no PRs that are incompatible with Python 3, especially a supported version, will be acceptable.
@FranciscoPombal commented on GitHub (Feb 4, 2022):
I never said archiving this repository would be the only required thing to do, or indeed the only option.
LOL, is that cherry-picked quote the hill you want to die on? You do know the end to that story, don't you? Calibre dropped support for Python 2.
But a perhaps better example of responsible maintainership was also linked above, in case you missed it: https://github.com/request/request/issues/3142.
You're not addressing the substance of the arguments that people are putting forward.
I think this is everything everyone needs to know about this new "management".
@FranciscoPombal commented on GitHub (Feb 4, 2022):
Says who? Why is it a goal now? When and How was it decided? You just decided this on your own without taking the needs and opinions of the community into account? That is not how you deal with a project of this size or reach.
Feel free to make decisions that way on your own separate niche fork, where you don't have to answer to anyone about what you decide to do with it (you could make it output ASCII nyan cats to stdout every 5 seconds if you want, no questions asked), but this is not the right way to do things here.
@fcore117 commented on GitHub (Feb 4, 2022):
Half off-topic, but similar reason keeps lot of Linux distros bloated too as there is lot of ancient and different languages/versions/runtimes included.

Python 2.x:
@pukkandan commented on GitHub (Feb 4, 2022):
Just to be clear, this is not hapenning
@dirkf commented on GitHub (Feb 4, 2022):
I would still rather see the PRs from the committed FOSS community: where are they?
It's bad enough that one guy in Nebraska supports the whole Internet with no support from businesses that rely on him (examples passim), but the committed FOSS community wasn't much help either.
Also, regardless of bloat, the default Python in Ubuntu 16.04, ESM to 2026, is 2.7.12.1. Python 3 is 3.5.2. Installing a "supported" Python, eg for yt-dlp, requires a PPA.
@spectrapulse commented on GitHub (Feb 4, 2022):
As much as I understand the potential need to support it. I'm not sure if that's a solid foundation to hold your stance on. We're currently talking about quite the niche and we're now also talking about multiple pieces of software that already have reached EOL (Officially) which should have little ground to actively support.
If the project desperately needs to support these versions, shouldn't that be a fork of it's own? Instead splitting up upstream into multiple projects that shouldn't that be done downstream instead? I don't understand the logic to do it the other way around, especially since there's realistically speaking more users of this project that actually already have moved on to supported versions of python and supported OS's too.
@pukkandan commented on GitHub (Feb 4, 2022):
Are people coming here from this mistitled post or one of its many clones? 🤔
@jxu commented on GitHub (Feb 4, 2022):
You are have only been "that guy" as maintainer for less than a week, far less than what Sergey M has put in.
(Also, for the record, linking Iggy Azalea should be automatic grounds for being removed as maintainer.)
And you do know that ESM is when your business specifically pays Canonical to continue life support because your boss or the business side bean-counters really doesn't want to upgrade? It's not for normal people.
@dirkf commented on GitHub (Feb 4, 2022):
On slashdot? Maybe I should just retire now ...
Not claiming otherwise, but no-one got on Sergey's case about the project coding conventions, which have not changed.
Could be fair comment, or was it just an ironic link?
Or, for limited personal use, free, for when you have your Emacs set up just how you like it and don't want to spend time redoing it.
@nocturn9x commented on GitHub (Feb 4, 2022):
Ubuntu 16.04 reached EOL on April 30th 2021 unless you explicitly buy an annual Extended Security Maintenance license. Someone so desperately going trough that length to keep Python 2.7 surely knows how to use a deprecated fork of a tool. My argument was just to deprecate the current youtube-dl, not to delete it entirely.
It seems to me you're not even trying to address our claims and just keep coming back at us with "well, where are the pull requests????". If that's your problem, I'll gladly make a PR that drops Python 2 support entirely :)
@Rekrullurker commented on GitHub (Feb 4, 2022):
I'll probably get mocked for this, but I have an old system that is running an old version of Windows. NONE of the forks work for me. As in they literally will NOT run on my system. YouTube-DL is literally the only version that I can run. I'd love to be using a more up to date program with less issues, but I can't.
I don't have the money to buy a new system and even if I did, I really don't want Win10/11 with their forced updates. I know, just move to Linux! I know absolutely NOTHING about using Linux. I don't know how to install software under it, how to configure it, how to use it, etc.
So for now, I'm stuck with what I have. It's either use YouTube-DL or nothing.
@EvanCarroll commented on GitHub (Feb 4, 2022):
@Rekrullurker (seems way off topic) when you say "does not work" did you open an issue on yt-dlp you can link where you tried to get support or ask a question on SuperUser with more information? I'd love to know your error. Python3 is supported on all machines Windows 8 and newer, and yt-dlp doesn't require anything more than that.
@jxu commented on GitHub (Feb 4, 2022):
Also there are unofficial python 3 32 bit binaries that should work.
@FranciscoPombal commented on GitHub (Feb 4, 2022):
That's your problem, and a bunch of learned helplessness.
What do you think is more reasonable?
a) Just upgrade to Windows 10/11 (as much hate as Windows deserves, the "the forced updates" meme is waaaaay overblown nowadays). No money is not an excuse, it's actually a free upgrade (but I would recommend Linux anyway). If you do decide to go with Windows 10/11 but your system is really so old it does not support it (somewhat doubtful, the oldest CPUs Windows 10 support are from 2004 (!)), then consider Linux, or searching for better deals in the used market. Decent machines for basic/office work that actually support Windows 10 can be had for about $50 or less in used condition.
b) Learn how to install and use Linux. It's really a very trivial process nowadays, and you can always use Windows in a virtual machine or Wine if you really need Windows-specific stuff for workflows for which you could not find replacements for on Linux or to which you can't adapt to despite your best efforts to do so. Bonus: you could get a Raspberry Pi for ~$45 ($35 + ~$10 microsd card), that way you get to learn Linux and a new system that's even suitable for basic/office use.
c) Beg online that a FOSS project handicaps itself just so that you don't have to put any effort into maintaining your own setup.
Please don't validate the new maintainer's irresponsible and misguided "noble cause" of maintaining unreasonable, detrimental levels of backwards compatibility. You are not some "poor little user" whose life will be in shambles should the project drop support for EOL stuff. As I've shown above, you have multiple options - real, actionable courses of action that will also benefit you in other ways other than the specific issue of being able to continue to run youtube-dl or its forks.
This is a poor comparison. That comic is about critical network infrastructure way down the stack, youtube-dl is a user-facing program with high code-churn due to the nature you YouTube and other sites themselves.
Users of 16.04 ESM are not your users. They are are enterprises with paid support contracts to Canonical, because their resident bean counters determined it would be cheaper, at least in the short-mid term, to keep paying Canonical for critical unofficial backports for software such as Python instead of following proper practices and keeping their tech stacks up to date.
So, is anyone paying you for your efforts? No? Then is there widespread demand and expectation from the community that this is the best course for the project? Also no? Hmmm...
@nocturn9x commented on GitHub (Feb 4, 2022):
Very well said.
@jxu commented on GitHub (Feb 4, 2022):
So our question is, is your usecase more important to the project than developers using non-obsolete versions of python? Depends on the scope and mission of the project. @dirkf would say so, others would not. Maybe we can drag @dstftw back from the dead to give an answer with some amount of authority.
@Rekrullurker commented on GitHub (Feb 4, 2022):
@EvanCarroll - No, I didn't open an issue because I'm very familiar with what happens when a program needs a newer version of Windows than I have.
@Others - I'm sorry. I wasn't aware that printing text to a console window, making a connection on the net and downloading data was such a complex task that it needs state of the art software. I mean, sure computers have been doing that since the days of MS-DOS, but obviously downloading from video sites is a much more demanding task that can only be accomplished using an up to date programming language.
Forgive me for wanting this horribly outdated project to continue as it has been, when obviously, it is vitally necessary that only the newest version of Python be used! And obviously, the maintainers of this particular project should be taken out back and horsewhipped for daring to use an outdated version!
@FranciscoPombal commented on GitHub (Feb 4, 2022):
@Rekrullurker
You're missing the point. It's not that it can't be done with Python 2. Hell, you could even use COBOL, or whatever vintage tech stack you prefer. But this is not just some toy HTTP downloader that you might implement over an afternoon/weekend in your language of choice and then forget about. This is a very widely-used project with very high code-churn - it must keep up with the ever-changing mechanisms YouTube and other service employ to serve video. It is essential that the project remains easy to contribute to. This means, among other things, shedding legacy cruft as it is EOL'd. Otherwise, you're creating friction for new contributors, and you might run out of contributors to deal with the high rate of change required in a timely fashion, and the project may eventually die because of this.
Remember, due to the changes YouTube and other services constantly make, programs such as youtube-dl may cease to work overnight. Lots of end-users now depend on youtube-dl working reasonably around the clock, including archivist activists that save important pieces of evidence before they are scrubbed from online platforms. If it is implemented in an obsolete language, there will be a smaller pool of potential contributors who will bother to try to post a fix in a reasonable time.
But, anyway, you are misrepresenting all the things that youtube-dl actually does:
This implies that what youtube-dl does could be achieved with both:
youtube-dl not only downloads video chunks, it also decodes youtube's rolling cipher (and other similar shenanigans), remuxes audio/video/etc, wrangles JSON, and even optionally re-encodes media streams (with the help of ffmpeg). So again, no, this not just "making a connection, printing text to the console and downloading data". Good luck running that on your 486. What you describe is more akin to the requirements and functionality of a basic IRC client. Not to mention that you'd quickly fill up period-accurate hard-drives even with "just" 1080p video.
This landscape is constantly evolving, and you must either keep up or find some other solution for yourself.
In fact, I doubt you could even play back the videos you download with average hardware older than about 2006-2007 - modern video codecs are quite complex. I happen to own an old ~2006-7 laptop with a C2D processor/4 GiB RAM for potential emergencies (it also has an SSD, which, while severely bottlenecked by the rest of the system, it does its job and makes the laptop very usable, because it greatly speeds up what is most important to speed up: random I/O). It can just barely manage 720p45 with the CPU at full beans last time I tried. But hey, turns out even such an old machine is x86-64. That's right, yes, that does mean I have a modern mainstream Linux distro installed on it, and yes, that means I can - gasp! - run non-EOL Python versions on it!
TL;DR - it's not a matter of whether maintaining youtube-dl with backwards compatibility for legacy crap XYZ can or cannot be done (from a purely theoretical technical standpoint, of course it can always be done), it's about opting for the optimal way to do maintain it given the unique characteristics, constraints, and context of the project, and its community.
@nocturn9x commented on GitHub (Feb 5, 2022):
As @FranciscoPombal already said, just because it can be done in legacy languages doesn't mean it should. Maintainability is the key to the survival of projects like this, where the rate of change is extremely fast. Just because a shoe can somewhat hammer a nail doesn't mean one should use it in place of a hammer. Funny how you used sarcasm and ended up just making a fool of yourself
@dirkf commented on GitHub (Feb 5, 2022):
Pointless innovation, as illustrated by Chrome, is a damaging strategy akin to continuous revolution in communist China and Cambodia.
Python 3 is certainly not pointless, but even Python 3.11 is a supported target for yt-dl. Code that runs only in 3.11 would be bad code. Good code should be easy to support in yt-dl.
When, say, Francisco submits a PR addressing one of the project's 4000+ other outstanding issues, we'll see whether the PR is worthwhile and how it can be incorporated in the project's codebase.
Opining on strategy is a lot easier than making reliable solid code, which accounts for the problems that I mentioned previously. The Internet protocols were created from rough consensus and working code, which proved to be a better development model than a standards committee (and I spent plenty of time in those). To change the project's coding conventions (or external dependencies) in a way that reduced the wide variety of platforms in which yt-dl can run, there would need to be actual examples of worthwhile features that can't straightforwardly be supported.
As to platforms, while it somewhat postdates the MS-DOS era, a MIPS-32 400MHz dual-core CPU with a hardware H.264 decoder is quite capable of running yt-dl under Py 2.7 as well as ffmpeg 4 and playing the resulting videos up to 1080p. A device like this has a potential further in-service life of at least 10 years. Maybe a future web ecosystem where we have, say, to send an iris print to President Xi, or execute 50MB of WASM, before making any web request will render the current yt-dl architecture unviable. Let's see.
@nocturn9x commented on GitHub (Feb 5, 2022):
The fact that you were able to make this argument political shows just how much of a fool you are. If you have nothing intelligent to say, just don't say anything, surely better than the dumpster of a fire this issue has become because of your answers that make zero sense whatsoever and seem to outright skip all of the valid points that we've brought up. Enjoy dictating over what's good or bad for the future of the project, just don't pretend it's a community effort anymore and don't make it look like this is the best course of action for everyone, because it is most clearly not.
@dirkf commented on GitHub (Feb 5, 2022):
In case it wasn't obvious, I'm not going to allow personal abuse in any discussions in the project, even if standards may have dropped during the interregnum. People can have different views without being stupid or mad. Let actions and code speak for themselves.
@nocturn9x commented on GitHub (Feb 5, 2022):
So if the answer doesn't suit your narrative you just shut it down. How convenient
@dirkf commented on GitHub (Feb 5, 2022):
Obviously not, as illustrated above.
@jxu commented on GitHub (Feb 5, 2022):
I agree with you, but political polemics and exaggerations aren't helping your case.
@EvanCarroll commented on GitHub (Feb 5, 2022):
Opinions on Maoism, Python 3.11, MIPS-32, and web assembly all in the same response. Kudos. Both your response and your maintainership have the same admirable quality of being succinct and well thought out.
@arrowgent commented on GitHub (Feb 6, 2022):
best of luck moving forward continuing to maintain youtube-dl
@Zirro commented on GitHub (Feb 6, 2022):
For what it's worth, I'm glad to see that @dirkf and @pukkandan are able to work together to maintain a constructive relationship and share code between the projects. If either one of them would've had a big ego or been absolutist to the point of some people above, both projects would have ended up suffering for it.
Time will tell whether maintaining both in parallel is feasible or if one eventually supplants the other. These things do not have to be settled in one week.
@FranciscoPombal commented on GitHub (Feb 7, 2022):
I actually respect and appreciate your militant positions, I know Free Software is inherently political. FYI for others - a very effective strategy that political opponents of Free Software have been running for nearly a decade now is to poison the well with pointless identity politics. They're toxic and pointless, and drain everyone's energy to engage in the actually important and productive political side of Free Software - hence the averse reaction to "turning a discussion political". If you want to separate Free Software from the fight against against dictatorial regimes and techo-corporate "you will rent everything, own nothing, and be happy" dystopia, you're missing a huge part of its point, and you should consider that you may have already been successfully conditioned by your enemies into becoming a pawn for their side. Recommended reading.
Side note: yep, I do wish youtube-dl were licensed differently ([A]GLPv3), but oh well.
This misrepresents my point. I never said new code written now should only run on 3.11. I am advocating for raising the minimum supported version as time goes on. For instance, it would be acceptable to submit code that only runs on >= 3.7, since that is the last non-EOL version currently.
My point is precisely that you would have an easier time finding contributors to address the project's 4000+ other outstanding issues if you don't sacrifice excessive amounts of developer ergonomics on the altar of excessive backwards compatibility on what is the de facto "main version" of youtube-dl. As I've said before, I would have no issue with you doing this for a separate niche fork with the express goal of extreme backwards compatibility.
You are assuming there was already a convention in place supporting extreme backwards compatibility. In reality, youtube-dl has historically supported python 2.7 not because it was somehow decided that was important at the time, but simply because that was "the done thing" when youtube-dl was created. Then, 2.7 compatibility simply stuck around because it apparently didn't bother the maintainers, despite how much it inconvenienced contributors and potential contributors.
Though implicit, IMO the main goal of youtube-dl has always been to keep up with the changes in the various websites it supports as quickly as possible. As I've argued above, optimizing for this implies optimizing for the number of contributors and developer ergonomics (while not sacrificing ease of use too much by, say, requiring 3.11 exclusively or something). Maintaining extreme backwards compatibility with EOL versions runs counter to this.
Now you are trying to impose an explicit new direction for the project - that of extreme backwards compatibility, which may compromise youtube-dl's ability to keep up as fast as it otherwise could.
Again, you might argue that's the role yt-dlp fulfills. But again, as I've argued above, naming is important, and many people don't know about yt-dlp, just youtube-dl. That's why I've been saying that youtube-dl itself should have the goals you now ascribe to yt-dlp, and that it would be preferable to continue the effort of maintaining extreme backwards compatibility on a separate fork, not the main youtube-dl repo.
Has any real user even mentioned that use case? It sounds like you're maintaining industrial hardware under some support contract. Or some kind of "TV set-top" box use case.
Unfortunately we might be closer to something resembling such a situation that what you may think. I cannot be convinced that the forced TPM* requirement for Windows 11 and the new Microsoft "security chips" inside new AMD CPUs are not efforts to prime the masses for such a future.
*TPM itself is not a bad thing, but the way they are intended to be used in the mass consumer market certainly is extremely user hostile - we all know the only accepted attestations will be the one signed by root certs controlled by a few corps.
@nocturn9x commented on GitHub (Feb 7, 2022):
You are right about my reaction to trying to "make the discussion political". I'm just tired of the pointless debating that seems to be so popular these days (you mentioned identity politics, which is a hot topic it seems) because, as you rightly said, it distracts us from the real point. So whenever I see politics mentioned in an IT/CS discussion I just roll my eyes almost instinctively because I have been exposed all too often to cringy movements the likes of "Let's change the default branch name of git to main!!!!" or "The Santa hat in vscode is offensive because we're not all Christian!!!!"
@Jonta commented on GitHub (Feb 7, 2022):
@dirkf Would you be open to a Readme-PR, which would tell people about yt-dlp? =)
@dirkf commented on GitHub (Feb 7, 2022):
Agreed. But it can also be observed that compatibility between Py 3 versions is only assured if a conservative (and I don't mean that politically!) coding style is used.
There was a convention in place, as you relate. 'Extreme' and 'excessive' are your descriptions of it.
In fact, it has been demonstrated that innovations from yt-dlp can generally be adopted into yt-dl quite easily, unless the code has diverged so significantly that code reconciliation is the hurdle rather than Python versions. The project coding conventions allow contributions to be made that will run in Py 2.7 without the contributor having to understand compatibility issues. As always, it is good practice when adding to a program to read the existing code and use that style in one's additions, but if someone offers a contribution that only runs in Py 3, assistance can be provided.
It could be argued that previous hard-worked maintainers were prone to reject or ignore PRs without explaining why, or how they could be made acceptable, but (a) sometimes this decision was correct (see, eg, discussion in PR #30329) (b) I haven't seen any case where the problem was Py 2.7 compatibility (whereas I have seen the reverse).
Agreed.
No.
If change proposals require extra external dependencies, yt-dlp is probably a better target. My perception is that there are many users who have enough trouble just opening a command-line prompt and want the program to "just work": so changes shouldn't make it more difficult to install the program or require non-default options for those users. Then there are users who have developed a more complicated workflow that they may see as the one true use case: we have to assess whether changes that suit one of those groups are worthwhile given possible unwanted side-effects or feature clash. And we can't forget the many projects that embed yt-dl and for which we have to maintain the signature and semantics of the program's APIs. Fortunately, as long as the extractor API remains stable, each project can address web churn to the benefit of both, and in fact there may be benefit in some element of competition.
You'll already have seen that the yt-dlp maintainer doesn't want to take over yt-dl. So your proposal would mean three projects instead of two: I don't think that would be an improvement.
Also, what @Zirro said.
Exactly that. What better use for yt-dl than to supplant a poorly designed, dysfunctional or obsolete OEM "smart TV" app? And it runs in your Apple M1 too.
What I think did inspire my choice of possible dystopic futures, exaggerated though I hope they will remain.
@dirkf commented on GitHub (Feb 7, 2022):
See https://github.com/ytdl-org/youtube-dl/issues/30568#issuecomment-1025012255. By all means have a go: your text may be better than what I was going to include in the next release.
@Jonta commented on GitHub (Feb 7, 2022):
PR to include mention of yt-dlp in Readme is #30613
@chrizilla commented on GitHub (Feb 10, 2022):
example of ytdl-ytdlp-redundancy ?
https://github.com/yt-dlp/yt-dlp/issues/2702#issuecomment-1034326815
@dirkf commented on GitHub (Feb 10, 2022):
No, I believe the patch applies to both versions of the extractor as they are actually identical. If I get around to committing it I expect yt-dlp will pick it up, or vice versa. Either way, whatever hard work was needed is already done.
@chrizilla commented on GitHub (Feb 10, 2022):
I meant the overhead of reporting&handling the same issue twice:
both on ytdl #30458 and ytdlp #2702
@Jonta commented on GitHub (Feb 11, 2022):
Seems like that should be coordinated
If youtube-dl and yt-dlp should use the same code for site support
I suggest just 1 of the 2 projects get all site broken/site support requests directed to it
youtube-dl currently has 801 open issues with the label site-support-request, which is >2.7x as many as
I don't know how accurate these numbers are, but my bet's on it being more work to move youtube-dl's issues to yt-dlp, than the other way around
If they should not use the same code for site support
I suggest a separate, 3rd issue tracker for site support/bug/enhancement requests
But hey
Maybe the sites that youtube-dl users want support for will diverge significantly from those yt-dlp users want support for. Maybe it's already the case. In which case, coordination isn't worth it
Note: I am not really familiar with the projects
@dirkf commented on GitHub (Feb 11, 2022):
That's really a relic of the interregnum. If the fix in the issue had been committed in yt-dl at the time, it would have been more visible. The maintainers are more likely to see commits than all issues in the other project.
As some of the extractors, not to mention the core processing, differ significantly between yt-dl and yt-dlp, it would only be confusing to report issues in one place.
@chrizilla commented on GitHub (Feb 12, 2022):
@dirkf good explanation, thank you
@issues101 commented on GitHub (Feb 16, 2022):
It's not the Python version. yt-dlp doesn't work under Windows XP. That's my complaint.
@pukkandan commented on GitHub (Feb 16, 2022):
Same thing. The last python version that works for XP is 3.4
@MrRawes commented on GitHub (Feb 16, 2022):
just gonna ask who is using windows xp with youtube-dl in 2022
it is dead
@Rekrullurker commented on GitHub (Feb 16, 2022):
Actually, I have an old system that still has XP on it.
Now, I know I'm going to get people asking why, so...
I don't have the money to buy a new computer. Even if I did, I don't really want Windows 10/11 with its spyware and forced updates. I know absolutely nothing about Linux and don't really want to learn a whole new OS and then not be able to run some programs that I've come to depend on. I could install Windows 7 on this system (yes, I know Windows 7 is now classified as obsolete), but I don't have a copy of Windows 7 and even if I did, I really don't want to nuke a system that I use daily and start over from scratch, because if I run into problems, then I'm left scrambling to try and configure an old system into something usable.
So for the time being, until I can afford to get something newer, this is what I have.
And for all the FUD about XP being outdated, web-based applications (browsers, YouTube-DL) are really the only things that give me problems. I can't run the latest web browsers and more and more websites are broken on older ones (who knew that displaying text and graphics required a state of the art web browser...). Sure, I can't run the latest versions of emulators, but the ones I have still work fine, I can still send and receive email (at least those standards don't change at the drop of a hat), view images, watch videos, upload/download files, etc.
I can still use the last version of YouTube-DL, although the downloads are very slow. I wrote a script to feed the download URLs to Internet Download Accelerator. I only get a max of about 400-500K/s, but it's better than the snail's pace that YouTube-DL alone gives me. Oh, I also can't download age-restricted videos. I tried the cookie-dump method, but I could never get it to work.
@bersbersbers commented on GitHub (Feb 17, 2022):
Wow - the oldest Chrome version supported on Windows XP is Chrome 49 and was released in 2016. I won't even start looking for the number of serious CVEs reported since then, but I certainly applaud your courage to log into your email account on an 8-years-expired OS and a maybe 6-years old browser.
Anyway, why do you consider this an important data point in the decision process on whether to support Python 2 in the coming years? Don't you think that you are maintaining an extremely rare setup the existence of which should not impact (read: impede) development of youtube-dl? I for one would not ask anyone to base their decision on what software I freely decide to use - there is a lot of "I don't want to"s in your post.
@Lee-Carre commented on GitHub (Feb 17, 2022):
Given the planned changes (modernising the release process) I've read about, and after other priorities are dealt with, a suggestion: enable Discussions in this repo.
They would be a better place for users to ask questions, instead of issues, for starters. Particularly since answers can be marked as such & up-voted.
Conversations are partially-threaded, so discussion of ideas should be easier.
I've seen this work well in other busy repos.
Though, personally, I'm quite happy to wait until after the forthcoming release.
@pukkandan commented on GitHub (Feb 17, 2022):
In yt-dlp I had to disable discussions because they were unmanagable. Some of the difficulties I had:
Not saying this is a bad idea, just sharing my experience. Maybe dirkf will find it more usefull than I did
@dirkf commented on GitHub (Feb 17, 2022):
Plainly @Rekrullurker is using some other browser and an actual email program, probably Mozilla-based, rather than the one true browser. One might wish that all the people, not least in the third world, with XP systems would get with Linux, but the world is as it is.
I'm not being enthused to try it.
@Rekrullurker commented on GitHub (Feb 17, 2022):
@bersbersbers - I was answering the question about who still uses XP and then elaborated because every time I mention that I still have XP, I inevitably get asked why.
@MrRawes commented on GitHub (Feb 17, 2022):
DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT DUAL BOOT
@chrizilla commented on GitHub (Feb 17, 2022):
👍 +1
@dirkf commented on GitHub (Feb 17, 2022):
Based on https://github.com/ytdl-org/youtube-dl/issues/30568#issuecomment-1043020453 (and I was aware of that situation), I suggest that a convention of starting (or renaming) an issue prefixed by 'Discussion: ', like 'Discussion: moving project maintenance to a mailing list like the Linux kernel', would address the need; there could also be a Discussion label.
@Lee-Carre commented on GitHub (Feb 17, 2022):
@MrRawes
See Rick Moen's
@Lee-Carre commented on GitHub (Feb 17, 2022):
github/feedback/discussions #3097 “Close discussions” [200 up-votes]
github/feedback/discussion #2838 “Templates (like issue templates) for discussions” [100+ up-votes]
Somewhat related: github/feedback/discussion #2861 “Convert Discussion into Issue” [120+ up-votes]
Though, this applies to anything new. Chicken-and-egg problem.
github/feedback/discussion #2971 “Discussion should be able to link to issue and versa visa, like issues to issues.” [50+ up-votes]
github/feedback/discussion #4436 “Improve github search” which basically points to Github search sucks (and how it could be better). [50+ up-votes]
@issues101 commented on GitHub (Mar 9, 2022):
People keep asking why anybody would use Windows XP. It's off topic, of course, but since there are so many inquiries, here are a few comments...
@spectrapulse commented on GitHub (Mar 10, 2022):
I don't see any justified reason why to keep using an EOL operating system.
And none of the ones that have been mentioned are valid either.
Second, this Discussion doesn't belong here. It shouldn't be relevant. If
you choose to use EOL software you shouldn't expect it to be supported just
because you don't agree with the choices made in later revisions.
On Thu, 10 Mar 2022 at 05:00, issues101 @.***> wrote:
@forresthopkinsa commented on GitHub (Mar 15, 2022):
Ultimately, youtube-dl is a well-established project with a long history, and I doubt that most of its users have ever even heard of the fork. It's neat that YTDLP has some cool extra features but, like with Debian and Ubuntu, some of us would prefer the upstream. Thank you dirkf for taking up the torch.
@EvanCarroll commented on GitHub (Mar 15, 2022):
@forresthopkinsa The fork is called
yt-dlp; that most of the users haven't heard of the fork is exactly why this project should,It's not even like they're keeping up. Look at the commit history of the two projects for a representation of health.
Alas, can you imagine wasting your time on these kinds of commits reverting for python2 compatibility, a dead EOL, and insecure language.
github.com/ytdl-org/youtube-dl@d02064218bgithub.com/ytdl-org/youtube-dl@85bf26c1d0And by insecure, I mean python.org isn't patching these releases anymore. It's basically Debian/Ubuntu/ActiveState that are your only source for secure Python2. And not even really. Just scroll down to Fix in Progress, Fix Pending and you can see exploits available now for things running Python2.
https://www.activestate.com/products/python/python-2-end-of-life-security-updates/
@MrRawes commented on GitHub (Mar 31, 2022):
CORRECTION: yt-dlp does not require an up-to-date python version, the minimum python version is 3.6 first released in late 2016 and is unsupported
@MrRawes commented on GitHub (Apr 20, 2022):
just wondering why @dirkf is listed as "Contributor" instead of "Collaborator"
@pukkandan commented on GitHub (Apr 20, 2022):
He seems to have made his membership to https://github.com/ytdl-org private
(I assume you meannvmMember. Afaik, there is noCollaboratorlabel)@dirkf commented on GitHub (Apr 20, 2022):
On the project page there's a list of 700+ "Contributors". I assume these are people recognised by GH as having committed to the project.
On the organisation page there's a list of "People", who I assume are the "Members" of the project.
A non-issue (or several of them) when running the yt-dl command-line program. No doubt someone building a server app that embeds yt-dl will want to use a supported Python version where possible, especially for their credit-card processing module.
@MrRawes commented on GitHub (Apr 25, 2022):
here is evidense of
Collaborator@MrRawes commented on GitHub (Apr 26, 2022):
this page is a bit outdated, could this be updated @dirkf
@hackerb9 commented on GitHub (May 7, 2022):
@dirkf wrote:
I am grateful for the work you've done on youtube-dl. I hesitate to ask, as I do not want you to feel pressured, but I am wondering if the next stable release is going to drop soonish. I understand that the slow download problem was fixed in the development code, but it still exists in the current release (2021.12.17).
Thanks!
@theofficialgman commented on GitHub (May 9, 2022):
@dirkf you or another contributor seems to have unmarked 2021.12.17 as a release, now the releases page only has 2021.05.16 as the latest
will there every be a new release at this repo? I know there is never a good time for a release when there are too many bugs and features to implement, but anything is better than the current release. In the meantime could you re-mark that release, thanks
@EvanCarroll commented on GitHub (May 9, 2022):
@theofficialgman Are you reading the backlog before you comment?
The crux of it: if you're not using python2, DO NOT USE youtube-dl. This is a relatively unmaintained project that can't track upstream changes. Instead use https://github.com/yt-dlp/yt-dlp
See this for more information,
@theofficialgman commented on GitHub (May 9, 2022):
yes, I have been tracking this issue since the start. I don't need you try reprimand me.
Dirkf has and plans on continue to do maintenance on this repo and the current master branch of youtube-dl is in a much better place, it just needs a release and for releases to not be deleted (like what has just happened today)
@pukkandan commented on GitHub (May 9, 2022):
It's Github acting up. See https://github.com/yt-dlp/yt-dlp/issues/3653. Clicking "https://github.com/ytdl-org/youtube-dl/releases/tag/2021.12.17" => "Edit release" => "Update release" fixes the issue. Or since this has been hapenning multiple times now, just wait for Github to fix it
PS: Note that unlike yt-dlp, youtube-dl's auto-updater is not affected since it uses https://yt-dl.org/update
@theofficialgman commented on GitHub (May 9, 2022):
@EvanCarroll also I shouldn't have to tell you this... but youtube-dl is still multiple factors of magnitude faster than yt-dlp... seems like even the latest release of yt-dlp hasn't implemented the throttling fix
edit: actually nevermind, both of them have implemented it. it just appears that neither of the implementations works when used inside XDM
@dirkf commented on GitHub (May 9, 2022):
It looks as if XDM just gets the single JSON output which (for yt-dl) would include the unthrottled media links, as long as youtube-dl or youtube-dl.exe (Windows) runs the unthrottling version.
Apparently GH unlisted 2021.06.06 as well as 2021.12.17, even after I fixed the missing 2021.12.17 last month, but they're back now.
@theofficialgman commented on GitHub (May 9, 2022):
I've tried myself downloading from the URLs in the json (-j) and they are indeed slow (they are not when downloading with youtube-dl directly)
are the URLs only valid to download quickly if you start downloading immediately or something? the expire time from the link has not passed (seems to be 6 hours in the future) but the download is still VERY slow if I do something like download with
wget@dirkf commented on GitHub (May 9, 2022):
Shouldn't happen. More likely, XDM is running another yt-dl that you haven't updated.
@theofficialgman commented on GitHub (May 9, 2022):
I'm testing this manually, not through XDM
I run
youtube-dl https://www.youtube.com/watch?v=NPBnphbYGFw -qiJ | jqthen pick a URL, and
wgetit and the download speed is only a few kbpsthrough youtube-dl (aka:
youtube-dl https://www.youtube.com/watch?v=NPBnphbYGFw -f 247) it is full speed@Rekrullurker commented on GitHub (May 10, 2022):
@theofficialgman - What do you mean that both of them have implemented the throttling fix? The last version I'm aware of is 2021.12.17 and that version is super-slow at downloading YouTube videos. In fact, I made a script to get the URLs for videos and then send them to Internet Download Manager so it can use 16 connections to download them. I get a whopping 1MB/s this way.
@EvanCarroll commented on GitHub (May 10, 2022):
Certainly yt-dlp is working fine. They're both python. They're both from the same code base. But yt-dlp is simply more modern and has an additional 200 contributors. I only mean to say that development work on this fix or bug will most probably not be done here first. So respectfully, you're either encountering another issue, or you need to file a bug on yt-dlp or search their issue backlog. Moreover, it seem if you're trying to report a bug doing so under a tab called "Under new management" is probably not a great idea.
It would be easier to trouble shoot this issue if you wrote the
jqto pick the url which doesn't work for you, or if you provided the url.@theofficialgman commented on GitHub (May 10, 2022):
I can't provide the URL, it expires in 6 hours
you can use any of them, each URL is for a different quality/videoformat that youtube offers. they are all slow to download from when used directly, you can try yourself. jq is just used to visualize the json.
as I said, both youtube-dl and yt-dlp URLs taken directly from the output json do NOT work fast. you have to download directly with the python scripts
@theofficialgman commented on GitHub (May 10, 2022):
I'm talking the master branch of each project. both have the throttling fix. youtube-dl is not made a release yet including it, necessitating building from source, which is what my original comment was about (see below)
@EvanCarroll commented on GitHub (May 10, 2022):
@theofficialgman so just for clarity when you say "I'm talking the master branch of each project. both have the throttling fix. youtube-dl is not made a release yet including it, necessitating building from source, which is what my original comment was about (see below)". There is an implicit ytdl has made a release, and using it will solve your problem (unless you're need python2 support)? And thus my original comment about it being more maintained is at least useful ;) even if the tone I'll grant you is a bit ... short.
I assume ytdl has made a release, only because I'm downloading very fast when I target those urls in ytdl (and I'm using release).
@theofficialgman commented on GitHub (May 10, 2022):
yt-dlp has made a release, NO it does not solve this problem. the throttling fix in both yt-dlp (master github history and in the latest release) and youtube-dl (master github history, not in the latest release) only works when using the python scripts directly. it does NOT WORK when ouputing the json and curl/wget/download the files from the resulting URLs
again, TRY IT YOURSELF if you don't believe or understand
pick format id 251 (the last url in the list), downloading with wget is VERY slow
when I ran it a few minutes ago, I got this url
downloading is VERY fast
@Rekrullurker commented on GitHub (May 10, 2022):
@theofficialgman - Ok, thanks for the explanation. Unfortunately, I don't know how to compile the source myself. I have only ever successfully compiled two programs in my entire life and both times, I had explicit, step-by-step instructions that told me exactly what I needed to download, where to put everything, what program to use and how to set the options.
@garoto commented on GitHub (May 10, 2022):
Is this really the issue where people should inquire and argue about anything other than what the title suggests? Frickin' hell, it's nuts.
@coletdjnz commented on GitHub (May 10, 2022):
This is an issue with your process (or whatever external application you are using), and not youtube-dl or yt-dlp.
It sounds to me you are just passing the raw link to wget and expecting to get full speeds. You are probably not setting http chunk size (has been required for many years for youtube to not be throttled) and using the default wget user agent to name a few.
The built-in downloader works fine due to being configured in a way that is optimised for this use.
Also, yeah, open a new issue. This is offtopic.
@theofficialgman commented on GitHub (May 10, 2022):
@coletdjnz thank you for this. I was not aware and @dirkf informed me that this was possible (just downloading at full speed from wget directly using the link) https://github.com/ytdl-org/youtube-dl/issues/30568#issuecomment-1121649546
I guess they were confused. Your explanation matches what I would have guessed and explains why wget and downloads through XDM are slow. It might be helpful to add documentation stating this or even define what steps might be necessary to obtain full download speeds with just the link, user agent, http chunk size, and whatever else is necessary
@EvanCarroll commented on GitHub (May 11, 2022):
I can confirm this issue too now. Thanks for working with me.
Vs,
Not sure why these two
yt-dlp(no curl required) commands would download the same url differently.@coletdjnz commented on GitHub (May 11, 2022):
the former isn't passing info about http chunk size to the downloader while the latter is. this is because it is the extractor that sets the value for the downloader to use. you can of course pass this manually with
--http-chunk-sizethe chunk size for downloader to use is set in the downloader args in formats that are applicable (have a look through the info json and you will see it in some formats)
@dirkf commented on GitHub (May 13, 2022):
To conclude the OT interlude, it appears that you would need wget2 to specify a chunk size. wget and curl don't seem to have an option that does so.
-k ...may work for aria2c.@gamer191 commented on GitHub (Jun 13, 2022):
@dirkf can I suggest creating a
fixed-in-dlptag for issues/PRs in this repo that have been fixed/merged/aren't applicable in yt-dlp? I'm happy to take on the responsibility of finding issues that fit that category and sending a list of them in this issue, whenever I've found a good amount.So far I've found the following issues: #29624, #30839, #30837 (fixed by adding certifi), #6, #622 (I didn't bother reading through the full conversation of 60+ messages, but based on reading the original message, this would work in yt-dlp using
--download-sections), #30822 and #30998@dirkf commented on GitHub (Jun 13, 2022):
The freetext issue search works well so just add a comment including
fixed_in_dlp(_isn't a split character for the search).Looking at the list:
--external-downloader-args ...(though possibly improved by being able to specify where in the command the args should be inserted)@gamer191 commented on GitHub (Jun 13, 2022):
#29624 is a PR, which should just be merged imo, given how simple it is.
Actually, on 2nd thought, there's probably a better way of doing it, which won't involve a new commit every time a higher quality gets added to ABC iview, given, based on my limited python knowledge, it appears that all that that part of the code is doing is selecting all the options under the hls header in the show's json file (example). But given that it's not the end of the world to create a new commit once every few years, and this project has enough issues already, I reckon #29624 should just get merged.
Moving on, #30839 gets fixed by switching from the old issue templates to the new issue forms (if you've never used an issue form before, you can begin creating a new issue on yt-dlp's repo in order to see what they're like. But obviously don't submit the issue report😉)
#30837 could be fixed by installing Linux, but Linux's hardware compatibility is almost as shit as Australia's last prime minister.
um yeah, but a
--download-sectionsoption makes it much easier for the end user. I guess this program isn't designed for end users though, it's designed for server admins who's server can't update topython 3.6. So it's fine to not be super user friendly, in my opinion (but #30613 should definitely be dealt with ASAP)@gamer191 commented on GitHub (Jun 16, 2022):
sorry, I forgot about
mentioned this issuenotifications@noahbroyles commented on GitHub (Jul 7, 2022):
So is the only point of even keeping this project alive to support hella old versions of Python? Is any new functionality gonna be added? I'd love to see a few issues be closed on this that would actually improve the project. This is the OG of yt-dlp, after all. Let's not let the clone become better than the OG.
@EvanCarroll commented on GitHub (Jul 7, 2022):
If you could think of any way to quantify what would signify the point in which "the clone" became better, you'd have already realize that point is at least 3 years in the past. Welcome.
@noahbroyles commented on GitHub (Jul 8, 2022):
@EvanCarroll yeah, I stopped using
youtube-dland switched toyt-dlpbecause of the damnndescramble blowup. What I meant to say is, we have some catching up to do.@Tachi107 commented on GitHub (Sep 20, 2022):
C is 50 years old, and the device you're reading this on relies on it for all of its basic functionalities... I'm pretty sure that youtube-dl can continue to be developed while targeting Python 2.6 :)
@EvanCarroll commented on GitHub (Sep 20, 2022):
@Tachi107 That's silly. You're arbitrarily looking at the first-release date, which has no relevance to the conversation.
None of this is true for Python2. It's dead.
@Tachi107 commented on GitHub (Sep 20, 2022):
That's fair, but it is also true that new C versions are not widely available (MSVC does not even completely support C11...). And in any case, projects like curl still use C89, because regardless of what the language is doing, if you want to stay highly portable you have to stick to outdated stuff, see the next point.
Who cares. If it has users, you have to respect the project's decision to continue supporting it. Believe it or not, some platforms are still stuck with Python2 (like NonStop OS on ia64), and do not have any Python3 port. Yeah, you and I probably don't need to worry about this, but somebody else might do :)
Edit: please, don't go to the OpenSSL thread to ask things unrelated to their issue, you'll notify all the people subscribed to that thread.
@EvanCarroll commented on GitHub (Sep 20, 2022):
It doesn't have users, and you're just wrong on those points. =)
What MSVC does is of no consequence., but it does support C11, and C17:
C11/C17 is highly portable, regardless of what MSVC does. There is a C17 compiler for like every platform produced: https://gcc.gnu.org/install/specific.html
Curl doesn't use C89, for portability. They use it because that's what they did in the 90s. Most C programs have since at least updated to C99. From the FAQ,
I can't see "we do not really know how many users that still require the use" substantiating the claim that they need to use C89 for portability. But reminder, C89is still a supported language unlike Python2. You can still compile programs in every modern C compiler using the C89 standard. And there is still a support ecosystem and toolchain to ensure your code is valid C89. That is to say, it's and secure and maintained this is just a rehash of your prior argument about looking at "arbitrarily looking at the first-release date".
It doesn't, and if did they're running insecure code. But if there were users and if Python 2 was supported upstream, I would agree.
@Tachi107 commented on GitHub (Sep 20, 2022):
This thread is not about C (but you're free to try to use C11 threads on Windows, regardless of which compiler you use - it is not going to work).
Security is not that relevant in all contexts (and is overlooked when it really matters), and, as already mentioned in this thread, there're plenty of embedded (and not) systems running a fixed release of python; my local train station still uses Debian 6 or something, for instance.
Anyway, you're free to think and use whatever you want - just stop being so ungrateful towards people developing software you use for free.
@dirkf commented on GitHub (Sep 20, 2022):
Indeed, https://github.com/ytdl-org/youtube-dl/issues/30568#issuecomment-1025018207 (there are other cases).
I'm quite sure the users of the STB application would rather use "insecure code" to access YT and BBC catch-up content that the STB used to support than not be able to do so at all. Equally, they aren't going to be upgrading from Linux kernel 2.6. A Python 2.7 system will still run correct and diagnose incorrect Python 2.7 programs regardless of the support status designated by PSF.
The linked OpenSSL thread is interesting in that **** build tool dependencies as discussed there are exactly why no Py3 exists on the STB platform (sizing might also be a problem, but was never reached).
@scrutinizer11 commented on GitHub (Jan 27, 2023):
Oh really? Then this optimistic statement, somehow, didn't hold, colliding with my experience when after installing the newest Python 3 package, an app stopped working, to my surprise. The trade-in was not a new horizon full of brilliant user experience but the Python launcher, popping up every time I started the app. I don't have the knowledge or time to work out a viable solution for detecting the Py version a given app relies upon, but if I did, would there be a way to tell apps to use different Py?
Some vendors (like Apple, in my case) stick to the hold-out strategy of updating underlining components of their products, such as Python packages. macOS still has bash version 3, which used to be the default. I don't feel the urgency to lay my hands on bash 4. Most users aren't developers, and if they make use of these languages, it usually covers all use cases.
For the same reason, Microsoft kept maintaining Windows 7, speaking of which there's still a significant chunk of the users.
Many people use older hardware not supported by the newest releases, being cut off from updates.
Thank you. You seem to be an empathic type.
What project's growth? As I observe, yt-dlp gets regular updates that, thanks to the developers, I can enjoy on my macOS 10.9 with the stock Python 2, so some backporting magic works. I didn't notice that Py 3 users were hurt.
@a-pav commented on GitHub (Mar 14, 2023):
I wish you could just merge the two projects, I think that would have been for the best.
But at least both projects should look alive and have regular releases in order to not lose community focus. I personally don't care for the new shiny features of yt-dlp. I prefer to use the good old widely known
youtube-dlbut that is getting harder and harder, considering the recent failures (due to changes on the youtube side). It seems that most of the new contributions are happening on yt-dlp, while most new users/adapters are, most probably, searching foryoutube-dland disregard anything else. Beside that it also seems that most of the contributors don't share the vision of the leads here in regards of keeping support for Python 2 and are already moving (moved) away.I haven't seen anyone asking you to keep supporting Python 2 but I see people asking for a new
youtube-dlrelease left and right.@the-r3dacted commented on GitHub (Apr 4, 2023):
So many fucking people complaining about a good thing. More support means more users. A basic fucking video downloader should work on a toaster, not require the latest """""""""secure""""""""" version of x software that has years of extra bloat and tells you to fuck off if your system is barely out of date.
@EvanCarroll commented on GitHub (Apr 4, 2023):
@K4sum1 yt-dlp works on python3.7+, hardly new. It was released in 2018. It's the oldest still supported version of Python 3.
@Twangist commented on GitHub (Apr 4, 2023):
Evidently yes. It seems pathetic that the new bosses would choose that sword to suicide the project on, but that's their (very bad and stupid) choice.
@dirkf commented on GitHub (Apr 4, 2023):
Apparently there are plenty of users who want youtube-dl rather than yt-dlp, for whatever reasons, and complain when the latter is suggested as an alternative. This was demonstrated when YT broke the program. At least one user wanted yt-dl running on Python 2.6 (it does, with some limitations).
The first (and see above) doesn't require anything to be changed; the second requires new work.
Despite some 75 PRs being merged since this issue was created, no PRs have failed because of Python language issues. There has been quite full co-operation and cross-fertilisation between this project and yt-dlp, including straightforward back-ports of some yt-dlp features coded for Py3.7+.
This issue is no longer pinned and has been quite fully discussed. To avoid issue necromancy, I'm going to close and lock it now.