add author property (thanks DmitryBurnaev)
Browse files- pytube/__main__.py +11 -0
- tests/test_streams.py +12 -0
pytube/__main__.py
CHANGED
|
@@ -319,6 +319,17 @@ class YouTube(object):
|
|
| 319 |
.get("viewCount")
|
| 320 |
)
|
| 321 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 322 |
def register_on_progress_callback(self, func):
|
| 323 |
"""Register a download progress callback function post initialization.
|
| 324 |
|
|
|
|
| 319 |
.get("viewCount")
|
| 320 |
)
|
| 321 |
|
| 322 |
+
@property
|
| 323 |
+
def author(self) -> str:
|
| 324 |
+
"""Get the video author.
|
| 325 |
+
:rtype: str
|
| 326 |
+
"""
|
| 327 |
+
return (
|
| 328 |
+
self.player_config_args.get("player_response", {})
|
| 329 |
+
.get("videoDetails", {})
|
| 330 |
+
.get("author", "unknown")
|
| 331 |
+
)
|
| 332 |
+
|
| 333 |
def register_on_progress_callback(self, func):
|
| 334 |
"""Register a download progress callback function post initialization.
|
| 335 |
|
tests/test_streams.py
CHANGED
|
@@ -95,6 +95,18 @@ def test_on_complete_hook(cipher_signature, mocker):
|
|
| 95 |
assert callback_fn.called
|
| 96 |
|
| 97 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 98 |
@pytest.mark.skip
|
| 99 |
def test_repr_for_audio_streams(cipher_signature):
|
| 100 |
stream = str(cipher_signature.streams.filter(only_audio=True).first())
|
|
|
|
| 95 |
assert callback_fn.called
|
| 96 |
|
| 97 |
|
| 98 |
+
def test_author(cipher_signature):
|
| 99 |
+
expected = "Test author"
|
| 100 |
+
cipher_signature.player_config_args = {
|
| 101 |
+
"player_response": {"videoDetails": {"author": expected}}
|
| 102 |
+
}
|
| 103 |
+
assert cipher_signature.author == expected
|
| 104 |
+
|
| 105 |
+
expected = "unknown"
|
| 106 |
+
cipher_signature.player_config_args = {}
|
| 107 |
+
assert cipher_signature.author == expected
|
| 108 |
+
|
| 109 |
+
|
| 110 |
@pytest.mark.skip
|
| 111 |
def test_repr_for_audio_streams(cipher_signature):
|
| 112 |
stream = str(cipher_signature.streams.filter(only_audio=True).first())
|