blob: 6ef55f59a57e2448fb4688a9b00eb4ef0476ef18 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
PYTHON_COMPAT=(python{2_7,3_4,3_5,3_6})
inherit bash-completion-r1 distutils-r1 readme.gentoo-r1
DESCRIPTION="Download videos from YouTube.com (and more sites...)"
HOMEPAGE="https://rg3.github.com/youtube-dl/"
SRC_URI="https://youtube-dl.org/downloads/${PV}/${P}.tar.gz"
LICENSE="public-domain"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris"
IUSE="+offensive test"
RDEPEND="
dev-python/setuptools[${PYTHON_USEDEP}]
"
DEPEND="
${RDEPEND}
test? ( dev-python/nose[coverage(+)] )
"
S="${WORKDIR}/${PN}"
python_prepare_all() {
if ! use offensive; then
sed -i -e "/..version../s|'$|+gentoo.no.offensive.sites'|g" \
youtube_dl/version.py || die
# these have single line import statements
local xxx=(
alphaporno anysex behindkink camwithher chaturbate eporner
eroprofile extremetube foxgay goshgay hellporno hentaistigma
hornbunny keezmovies lovehomeporn mofosex myvidster porn91 porncom
pornflip pornhd pornotube pornovoisines pornoxo ruleporn sexu
slutload spankbang spankwire sunporno thisav vporn watchindianporn
xbef xnxx xtube xvideos xxxymovies youjizz youporn
)
# these have multi-line import statements
local mxxx=(
drtuber fourtube motherless pornhub redtube tnaflix tube8 xhamster
)
# do single line imports
sed -i \
-e $( printf '/%s/d;' ${xxx[@]} ) \
youtube_dl/extractor/extractors.py \
|| die
# do multiple line imports
sed -i \
-e $( printf '/%s/,/)/d;' ${mxxx[@]} ) \
youtube_dl/extractor/extractors.py \
|| die
sed -i \
-e $( printf '/%s/d;' ${mxxx[@]} ) \
youtube_dl/extractor/generic.py \
|| die
rm \
$( printf 'youtube_dl/extractor/%s.py ' ${xxx[@]} ) \
$( printf 'youtube_dl/extractor/%s.py ' ${mxxx[@]} ) \
test/test_age_restriction.py \
|| die
fi
eapply_user
distutils-r1_python_prepare_all
}
src_compile() {
distutils-r1_src_compile
}
python_test() {
emake test
}
python_install_all() {
dodoc README.txt
doman ${PN}.1
newbashcomp ${PN}.bash-completion ${PN}
insinto /usr/share/zsh/site-functions
newins ${PN}.zsh _${PN}
insinto /usr/share/fish/vendor_completions.d
doins ${PN}.fish
distutils-r1_python_install_all
rm -r "${ED}"/usr/etc || die
rm -r "${ED}"/usr/share/doc/youtube_dl || die
}
pkg_postinst() {
elog "${PN}(1) / https://bugs.gentoo.org/355661 /"
elog "https://github.com/rg3/${PN}/blob/master/README.md#faq :"
elog
elog "${PN} works fine on its own on most sites. However, if you want"
elog "to convert video/audio, you'll need avconf (media-video/libav) or"
elog "ffmpeg (media-video/ffmpeg). On some sites - most notably YouTube -"
elog "videos can be retrieved in a higher quality format without sound."
elog "${PN} will detect whether avconv/ffmpeg is present and"
elog "automatically pick the best option."
elog
elog "Videos or video formats streamed via RTMP protocol can only be"
elog "downloaded when rtmpdump (media-video/rtmpdump) is installed."
elog "Downloading MMS and RTSP videos requires either mplayer"
elog "(media-video/mplayer) or mpv (media-video/mpv) to be installed."
elog
elog "If you want ${PN} to embed thumbnails from the metadata into the"
elog "resulting MP4 files, consider installing media-video/atomicparsley"
}
|