File: HISTORY.rst

package info (click to toggle)
python-gmusicapi 12.1.1-3
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, sid
  • size: 1,228 kB
  • sloc: python: 5,080; makefile: 134
file content (441 lines) | stat: -rw-r--r-- 14,535 bytes parent folder | download
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
.. :changelog:

History
-------

As of 1.0.0, `semantic versioning <http://semver.org/>`__ is used.

12.1.1
++++++
released 2019-07-13

- open default log file as utf-8 to avoid windows encoding problems

12.1.0
++++++
released 2019-04-20

- deprecate Mobileclient.get_promoted_songs in favor of Mobileclient.get_top_songs to clarify its behavior. Functionality remains the same.

12.0.0
++++++
released 2019-01-08

- breaking: remove gmusicapi.clients.OAUTH_FILEPATH. Use Musicmanager.OAUTH_FILEPATH instead.

11.1.1
++++++
released 2018-12-04

- add back gmusicapi.clients.OAUTH_FILEPATH after it was removed in 11.1.0 (a breaking change)
- deprecate gmusicapi.clients.OAUTH_FILEPATH in favor of Musicmanager.OAUTH_FILEPATH

11.1.0
++++++
released 2018-11-30

- add Mobileclient OAuth support (``perform_oauth`` and ``oauth_login``) and deprecate email/password auth, which Google now often rejects.
  It works the same way as the Musicmanager; see `the docs
  <https://unofficial-google-music-api.readthedocs.io/en/latest/usage.html#quickstart>`__ for an example.
- update Mobileclient.search schema

11.0.4
++++++
released 2018-11-19

- fix a number of bugs with Mobileclient.search

11.0.3
++++++
released 2018-09-19

- fix an "__init__() takes at most 4..." warning coming from oauth2client

11.0.2
++++++
released 2018-09-09

- fix validation of "ios:..." format device ids
- add inLibrary field to station docs

11.0.1
++++++
released 2018-03-18

- update schemas

11.0.0
++++++
released 2017-12-09

- breaking: list calls now default to max_results=None, increasing the default number of results from 100 to 999
- add updated_after param to song/playlist listing to support differential updates
- add support for free radio stations
- add filepath+extension to unsupported file exception message
- fix "I'm Feeling Lucky" station never refreshing its seed
- fix crashes caused by some 503s during uploading
- fix gmtools for https://github.com/simon-weber/Google-Music-Playlist-Importer
- fix AAC and ALAC content type upload detection
- blacklist requests 2.8.2
- improve id documentation
- update schemas

10.1.2
++++++
released 2017-04-03

- validate device ids to prevent 403s during streaming
- fix LocalUnboundError during login for some environments
- update schemas

10.1.1
++++++
released 2017-02-10

- deprecate include_deleted param to greatly speed up responses for Mobileclient.get_all_*
- Mobileclient.search now works on non-subscription accounts
- fix logging IOError on read-only filesystems
- fix problems caused by broken requests IDNA support

10.1.0
++++++
released 2016-10-31

- deprecate the Webclient
- add podcast support to Mobileclient:
   - get_all_podcast_series
   - get_all_podcast_episodes
   - add_podcast_series
   - delete_podcast_series
   - edit_podcast_series
   - get_podcast_episode_stream_url
   - get_podcast_episode_info
   - get_podcast_series_info
   - get_browse_podcast_hierarchy
   - get_browse_podcast_series
- add Mobileclient.add_store_tracks
- add Mobileclient.rate_songs
- add Musicmanager.get_quota
- fix get_all_user_playlist_contents hanging for large playlists
- fix is_authenticated status after uploader_id exceptions
- fix upload progress tracker remaining after upload
- various internal improvements and schema updates


10.0.1
++++++
released 2016-06-04

- switch to pycryptodomex
- minor schema adjustments

10.0.0
++++++
released 2016-05-01

- breaking: Mobileclient.search_all_access is now Mobileclient.search
- breaking: Mobileclient.add_aa_track is now Mobileclient.add_store_track
- add situation_hits and video_hits to Mobclient.search
- add methods Mobileclient.deauthorize_device, .get_listen_now_items, and .get_listen_now_situations
- add property Mobileclient.is_subscribed
- add playlists and curated stations as station seeds
- add params locale and subscription to Mobileclient.login
- add param enable_transcoding to Musicmanager.upload
- update to newer Google apis, returning more data in responses
- reduce memory usage during uploading
- fix a variety of bugs, mostly python2/3 type errors

9.0.0
+++++
released 2016-03-05

- breaking: attempting to reupload a file after changing only its tags will result in a rejection as a duplicate upload (it used to upload successfully)
- fix webclient login after Google changes
- fix ``'str' object has no attribute 'refresh'``
- prevent upstream protobufs TypeError by locking version
- a 'matched' value may be returned even if matching is not enabled if we were unable to disallow matching

8.0.0
+++++
released 2016-02-08

- breaking: drop support for python < 2.7.9
- add (experimental) python 3 support!
- add Musicmanager.get_purchased_songs
- add station_hits to search_all_access results
- add disc_number and total_disc_count to Musicmanager.get_uploaded_songs
- add a prompt for device id in tests
- upgrade gpsoauth, removing dependency on pycrypto
- deprecate Webclient.create_playlist and Webclient.get_registered_devices
- fix various packaging problems
- fix KeyError in Mobileclient.get_station_tracks
- fix a TypeError from requests
- fix various bits of the docs

7.0.0
+++++
released 2015-09-19

- breaking: python 2.6 is no longer supported
- breaking: webclient.get_registered_devices has a slightly different schema
- fix Webclient authentication and get_stream_urls
- fix MusicManager uploading: Google shut down the rupio endpoint
- fix certificate validation
- fix album artist metadata not being upload

6.0.0
+++++
released 2015-06-20

- fix creation of multiple android devices from android_id=None; support creating device ids from mac address.
- android_id is now optional for mobileclient.get_stream_url, defaulting to android_id from login()

5.0.0
+++++
released 2015-06-02

- breaking: Webclient.login temporarily broken after clientlogin deprecation
- breaking: Mobileclient.get_thumbs_up_songs renamed to mobileclient.get_promoted_songs
- breaking: Mobileclient.change_playlist_name is now edit_playlist
- fix Mobileclient.login breakage due to clientlogin deprecation
- fix Mobileclient.get_genres: return a list and handle invalid parent genres
- add support for filtering out recently played station tracks to Mobileclient.get_station_tracks
- add public playlist results to Mobileclient.search_all_access
- add Mobileclient.get_registered_devices
- add quality option to Mobileclient.get_stream_url
- add support for public playlist creation to Mobileclient.create_playlist
- make optional description param for Webclient.create_playlist
- better handle locating mp3 transcoder


4.0.0
+++++
released 2014-06-08

- breaking: remove webclient.change_song_metadata; use mobileclient.change_song_metadata instead
- breaking: remove webclient.get_all_songs; use mobileclient.get_all_songs instead
- breaking: remove webclient.get_playlist_songs; use mobileclient.get_all_user_playlist_contents instead
- breaking: remove webclient.get_all_playlist_ids; use mobileclient.get_all_user_playlists instead
- breaking: webclient.upload_album_art now returns a url to the uploaded image
- breaking: due to backend changes, mobileclient.change_song_metadata can only change ratings
- add mobileclient.get_thumbs_up_songs
- add mobileclient.increment_song_playcount
- add webclient.create_playlist, which is capable of creating public playlists
- add webclient.get_shared_playlist_info

3.1.0
+++++
released 2014-01-20

- add verify_ssl option to client init
- greatly loosen dependency version requirements

3.0.1
+++++
released 2013-12-11

- remove extraneous logging introduced in 3.0.0 -- this could have logged auth details, so it's recommended to delete old logs

3.0.0
+++++
released 2013-11-03

- Musicmanager.get_all_songs is now Musicmanager.get_uploaded_songs
- Mobileclient.get_all_playlist_contents is now Mobileclient.get_all_user_playlist_contents, and will no longer return results for subscribed playlists
- add Mobileclient.get_shared_playlist_contents
- add Mobileclient.reorder_playlist_entry
- add Mobileclient.change_song_metadata
- add Mobileclient.get_album_info
- add Mobileclient.get_track_info
- add Mobileclient.get_genres
- compatibility fixes

2.0.0
+++++
released 2013-08-01

- remove broken Webclient.{create_playlist, change_playlist, copy_playlist, search, change_playlist_name}
- add Mobileclient; this will slowly replace most of the Webclient, so prefer it when possible
- add support for streaming All Access songs
- add Webclient.get_registered_devices
- add a toggle to turn off validation per client
- raise an exception when a song dictionary is passed instead of an id

1.2.0
+++++
released 2013-05-16

- add support for listing/downloading songs with the Musicmanager.
  When possible, this should be preferred to the Webclient's method, since
  it does not have a download quota.
- fix a bug where the string representing a machine's mac 
  was not properly formed for use as an uploader_id.
  This will cause another machine to be registered for some users;
  the old device can be identified from its lack of a version number.
- verify user-provided uploader_ids

1.1.0
+++++
released 2013-04-19

- get_all_songs can optionally return a generator
- compatibility updates for AddPlaylist call
- log to appdirs.user_log_dir by default
- add open_browser param to perform_oauth

1.0.0
+++++
released 2013-04-02

- breaking: Api has been split into Webclient and Musicmanager
- breaking: semantic versioning (previous versions removed from PyPi)
- Music Manager OAuth support
- faster uploading when matching is disabled
- faster login

2013.03.04
++++++++++

- add artistMatchedId to metadata
- tests are no longer a mess

2013.02.27
++++++++++

- add support for uploading album art (`docs
  <https://unofficial-google-music-api.readthedocs.io/en/
  latest/reference/api.html#gmusicapi.api.Api.upload_album_art>`__)

- add support for .m4b files
- add CancelUploadJobs call (not exposed in api yet)
- Python 2.6 compatibility
- reduced peak memory usage when uploading
- logging improvements
- improved error messages when uploading

2013.02.15
++++++++++

- user now controls logging (`docs
  <https://unofficial-google-music-api.readthedocs.io/en/
  latest/reference/api.html#gmusicapi.api.Api.__init__>`__)

- documentation overhaul

2013.02.14
++++++++++

- fix international logins

2013.02.12
++++++++++

- fix packaging issues

2013.02.11
++++++++++

- improve handling of strange metadata when uploading
- add a dependency on `dateutil <http://labix.org/python-dateutil>`__

2013.02.09
++++++++++

- breaking: upload returns a 3-tuple (`docs
  <https://unofficial-google-music-api.readthedocs.io/en
  /latest/#gmusicapi.api.Api.upload>`__)

- breaking: get_all_playlist_ids always returns lists of ids; remove always_id_lists option
  (`docs <https://unofficial-google-music-api.readthedocs.io/en
  /latest/#gmusicapi.api.Api.get_all_playlist_ids>`__)

- breaking: remove suppress_failure option in Api.__init__
- breaking: copy_playlist ``orig_id`` argument renamed to ``playlist_id`` (`docs
  <https://unofficial-google-music-api.readthedocs.io/en
  /latest/#gmusicapi.api.Api.copy_playlist>`__)

- new: report_incorrect_match (only useful for Music Manager uploads) (`docs
  <https://unofficial-google-music-api.readthedocs.io/en
  /latest/#gmusicapi.api.Api.report_incorrect_match>`__)

- uploading fixed
- avconv replaces ffmpeg
- scan and match is supported
- huge code improvements

2013.01.05
++++++++++

- compatibility update for playlist mutation
- various metadata compatibility updates

2012.11.09
++++++++++

- bugfix: support for uploading uppercase filenames (Tom Graham)
- bugfix: fix typo in multidownload validation, and add test

2012.08.31
++++++++++

- metadata compatibility updates (storeId, lastPlayed)
- fix uploading of unicode filenames without tags

2012.05.04
++++++++++

- update allowed rating values to 1-5 (David Dooling)
- update metajamId to matchedId (David Dooling)
- fix broken expectation about disc/track numbering metadata

2012.04.03
++++++++++

- change to the 3-clause BSD license
- add Kevin Kwok to AUTHORS

2012.04.01
++++++++++

- improve code in example.py
- support uploading of all Google-supported formats: m4a, ogg, flac, wma, mp3. Non-mp3 are transcoded to 320kbs abr mp3 using ffmpeg
- introduce dependency on ffmpeg. for non-mp3 uploading, it needs to be in path and have the needed transcoders available
- get_playlists is now get_all_playlist_ids, and is faster
- add an exception CallFailure. Api functions raise it if the server says their request failed
- add suppress_failure (default False) option to Api.__init__()
- change_playlist now returns the changed playlistId (pid)
- change_song_metadata now returns a list of changed songIds (sids)
- create_playlist now returns the new pid
- delete_playlist now returns the deleted pid
- delete_songs now returns a list of deleted sids
- change_playlist now returns the pid of the playlist - which may differ from the one passed in
- add_songs_to_playlist now returns a list of (sid, new playlistEntryId aka eid) tuples of added songs
- remove_songs_from_playlist now returns a list of removed (sid, eid) pairs
- search dictionary is now flattened, without the "results" key. see documentation for example

2012.03.27
++++++++++

- package for pip/pypi
- add AUTHORS file
- remove session.py; the sessions are now just api.PlaySession (Darryl Pogue)
- protocol.Metadata_Expectations.get_expectation will return UnknownExpectation when queried for unknown keys; this should prevent future problems
- add immutable 'subjectToCuration' and 'metajamId' fields - use unknown

2012.03.16
++++++++++

- add change_playlist for playlist modifications
- get_playlists supports multiple playlists of the same name by returning lists of playlist ids. By default, it will return a single string (the id) for unique playlist names; see the always_id_lists parameter.
- api.login now attempts to bump Music Manager authentication first, bypassing browser emulation. This allows for much faster authentication.
- urls updated for the change to Google Play Music
- remove_songs_from_playlist now takes (playlist_id, song_ids), for consistency with other playlist mutations

2012.03.04
++++++++++

- change name to gmusicapi to avoid ambiguity
- change delete_song and remove_song_from_playlist to delete_songs and remove_songs_from_playlist, for consistency with other functions
- add verification of WC json responses
- setup a sane branch model. see http://nvie.com/posts/a-successful-git-branching-model/
- improve logging