pypodlib 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pypodlib/__init__.py +45 -0
- pypodlib/api.py +939 -0
- pypodlib/artworkdb_parser/__init__.py +3 -0
- pypodlib/artworkdb_parser/chunk_parser.py +66 -0
- pypodlib/artworkdb_parser/constants.py +11 -0
- pypodlib/artworkdb_parser/mhfd_parser.py +61 -0
- pypodlib/artworkdb_parser/mhii_parser.py +60 -0
- pypodlib/artworkdb_parser/mhli_parser.py +16 -0
- pypodlib/artworkdb_parser/mhni_parser.py +47 -0
- pypodlib/artworkdb_parser/mhod_parser.py +59 -0
- pypodlib/artworkdb_parser/mhsd_parser.py +16 -0
- pypodlib/artworkdb_parser/parser.py +15 -0
- pypodlib/artworkdb_shared/__init__.py +2 -0
- pypodlib/artworkdb_shared/binary.py +66 -0
- pypodlib/artworkdb_shared/constants.py +72 -0
- pypodlib/artworkdb_shared/ithmb_paths.py +27 -0
- pypodlib/artworkdb_shared/mhlf.py +47 -0
- pypodlib/artworkdb_shared/mhni.py +184 -0
- pypodlib/artworkdb_shared/mhod.py +72 -0
- pypodlib/artworkdb_writer/__init__.py +77 -0
- pypodlib/artworkdb_writer/art_extractor.py +319 -0
- pypodlib/artworkdb_writer/artwork_types.py +115 -0
- pypodlib/artworkdb_writer/artwork_writer.py +1482 -0
- pypodlib/artworkdb_writer/artworkdb_chunks.py +475 -0
- pypodlib/artworkdb_writer/ithmb_codecs.py +723 -0
- pypodlib/artworkdb_writer/rgb565.py +227 -0
- pypodlib/device/__init__.py +158 -0
- pypodlib/device/artwork.py +184 -0
- pypodlib/device/artwork_presets.py +119 -0
- pypodlib/device/authority.py +764 -0
- pypodlib/device/bootstrap.py +210 -0
- pypodlib/device/capabilities.py +737 -0
- pypodlib/device/checksum.py +41 -0
- pypodlib/device/diagnostic_log.py +180 -0
- pypodlib/device/dump.py +496 -0
- pypodlib/device/durability.py +431 -0
- pypodlib/device/eject.py +1153 -0
- pypodlib/device/filesystem.py +181 -0
- pypodlib/device/filesystem_profile.py +633 -0
- pypodlib/device/images.py +409 -0
- pypodlib/device/info.py +2752 -0
- pypodlib/device/linux_identity.py +557 -0
- pypodlib/device/linux_integration.py +370 -0
- pypodlib/device/lookup.py +204 -0
- pypodlib/device/metadata_write.py +201 -0
- pypodlib/device/models.py +715 -0
- pypodlib/device/path_safety.py +140 -0
- pypodlib/device/recovery.py +147 -0
- pypodlib/device/scanner.py +2653 -0
- pypodlib/device/storage_safety.py +104 -0
- pypodlib/device/sysinfo.py +528 -0
- pypodlib/device/usb_backend.py +132 -0
- pypodlib/device/virtual.py +490 -0
- pypodlib/device/virtual_identity.py +50 -0
- pypodlib/device/vpd_iokit.py +617 -0
- pypodlib/device/vpd_libusb.py +1464 -0
- pypodlib/device/vpd_linux.py +256 -0
- pypodlib/device/vpd_usb_control.py +211 -0
- pypodlib/device/vpd_windows.py +311 -0
- pypodlib/device/write_guard.py +553 -0
- pypodlib/device/write_readiness.py +208 -0
- pypodlib/infrastructure/__init__.py +1 -0
- pypodlib/infrastructure/media_folders.py +180 -0
- pypodlib/infrastructure/settings_paths.py +83 -0
- pypodlib/infrastructure/settings_persistence.py +135 -0
- pypodlib/infrastructure/settings_runtime.py +526 -0
- pypodlib/infrastructure/settings_schema.py +345 -0
- pypodlib/infrastructure/settings_secrets.py +127 -0
- pypodlib/infrastructure/theme_catalog.py +371 -0
- pypodlib/infrastructure/theme_renderer.py +1109 -0
- pypodlib/infrastructure/theme_runtime.py +28 -0
- pypodlib/infrastructure/version.py +18 -0
- pypodlib/itunesdb_parser/__init__.py +22 -0
- pypodlib/itunesdb_parser/_parsing.py +120 -0
- pypodlib/itunesdb_parser/artwork_links.py +108 -0
- pypodlib/itunesdb_parser/byte_walk.py +586 -0
- pypodlib/itunesdb_parser/chunk_parser.py +203 -0
- pypodlib/itunesdb_parser/exceptions.py +59 -0
- pypodlib/itunesdb_parser/forensics.py +851 -0
- pypodlib/itunesdb_parser/ipod_library.py +174 -0
- pypodlib/itunesdb_parser/mhbd_parser.py +43 -0
- pypodlib/itunesdb_parser/mhia_parser.py +31 -0
- pypodlib/itunesdb_parser/mhii_parser.py +34 -0
- pypodlib/itunesdb_parser/mhip_parser.py +31 -0
- pypodlib/itunesdb_parser/mhit_parser.py +34 -0
- pypodlib/itunesdb_parser/mhod_parser.py +674 -0
- pypodlib/itunesdb_parser/mhsd_parser.py +48 -0
- pypodlib/itunesdb_parser/mhyp_parser.py +50 -0
- pypodlib/itunesdb_parser/otg.py +187 -0
- pypodlib/itunesdb_parser/parser.py +140 -0
- pypodlib/itunesdb_parser/playcounts.py +282 -0
- pypodlib/itunesdb_shared/__init__.py +32 -0
- pypodlib/itunesdb_shared/album_identity.py +93 -0
- pypodlib/itunesdb_shared/constants.py +393 -0
- pypodlib/itunesdb_shared/device_time.py +250 -0
- pypodlib/itunesdb_shared/extraction.py +173 -0
- pypodlib/itunesdb_shared/field_base.py +478 -0
- pypodlib/itunesdb_shared/mhbd_defs.py +57 -0
- pypodlib/itunesdb_shared/mhia_defs.py +39 -0
- pypodlib/itunesdb_shared/mhii_defs.py +18 -0
- pypodlib/itunesdb_shared/mhip_defs.py +33 -0
- pypodlib/itunesdb_shared/mhit_defs.py +237 -0
- pypodlib/itunesdb_shared/mhod_defs.py +811 -0
- pypodlib/itunesdb_shared/mhsd_defs.py +15 -0
- pypodlib/itunesdb_shared/mhyp_defs.py +58 -0
- pypodlib/itunesdb_shared/playlist_hierarchy.py +285 -0
- pypodlib/itunesdb_shared/playlist_kinds.py +41 -0
- pypodlib/itunesdb_shared/playlist_lifecycle.py +55 -0
- pypodlib/itunesdb_shared/playlist_properties.py +193 -0
- pypodlib/itunesdb_writer/__init__.py +146 -0
- pypodlib/itunesdb_writer/hash58.py +279 -0
- pypodlib/itunesdb_writer/hash72.py +496 -0
- pypodlib/itunesdb_writer/hashab.py +290 -0
- pypodlib/itunesdb_writer/mhbd_writer.py +1588 -0
- pypodlib/itunesdb_writer/mhip_writer.py +150 -0
- pypodlib/itunesdb_writer/mhit_writer.py +511 -0
- pypodlib/itunesdb_writer/mhla_writer.py +211 -0
- pypodlib/itunesdb_writer/mhli_writer.py +141 -0
- pypodlib/itunesdb_writer/mhlp_writer.py +261 -0
- pypodlib/itunesdb_writer/mhlt_writer.py +52 -0
- pypodlib/itunesdb_writer/mhod52_writer.py +344 -0
- pypodlib/itunesdb_writer/mhod_spl_writer.py +448 -0
- pypodlib/itunesdb_writer/mhod_writer.py +589 -0
- pypodlib/itunesdb_writer/mhsd_writer.py +98 -0
- pypodlib/itunesdb_writer/mhyp_writer.py +641 -0
- pypodlib/itunesdb_writer/wasm/calcHashAB.wasm +0 -0
- pypodlib/sqlitedb_writer/__init__.py +21 -0
- pypodlib/sqlitedb_writer/_helpers.py +62 -0
- pypodlib/sqlitedb_writer/cbk_writer.py +183 -0
- pypodlib/sqlitedb_writer/dynamic_writer.py +123 -0
- pypodlib/sqlitedb_writer/extras_writer.py +84 -0
- pypodlib/sqlitedb_writer/genius_writer.py +56 -0
- pypodlib/sqlitedb_writer/library_writer.py +1187 -0
- pypodlib/sqlitedb_writer/locations_writer.py +145 -0
- pypodlib/sqlitedb_writer/sqlite_writer.py +310 -0
- pypodlib/sync/__init__.py +182 -0
- pypodlib/sync/_db_io.py +580 -0
- pypodlib/sync/_formats.py +79 -0
- pypodlib/sync/_playlist_builder.py +645 -0
- pypodlib/sync/_track_conversion.py +462 -0
- pypodlib/sync/album_chapters.py +1185 -0
- pypodlib/sync/audio_fingerprint.py +517 -0
- pypodlib/sync/backup_manager.py +3762 -0
- pypodlib/sync/capability_filter.py +61 -0
- pypodlib/sync/contracts.py +601 -0
- pypodlib/sync/core/__init__.py +27 -0
- pypodlib/sync/core/context.py +115 -0
- pypodlib/sync/core/engine.py +283 -0
- pypodlib/sync/core/models.py +141 -0
- pypodlib/sync/database_commit.py +251 -0
- pypodlib/sync/dependency_manager.py +352 -0
- pypodlib/sync/existing_track_matcher.py +268 -0
- pypodlib/sync/fingerprint_diff_engine.py +2132 -0
- pypodlib/sync/integrity.py +333 -0
- pypodlib/sync/ipod_track_paths.py +272 -0
- pypodlib/sync/itunes_prefs.py +666 -0
- pypodlib/sync/lastfm_scrobbler.py +482 -0
- pypodlib/sync/lb_scrobbler.py +583 -0
- pypodlib/sync/mapping.py +604 -0
- pypodlib/sync/path_identity.py +34 -0
- pypodlib/sync/pc_library.py +1770 -0
- pypodlib/sync/photos.py +2706 -0
- pypodlib/sync/plan_validator.py +595 -0
- pypodlib/sync/planning_stages.py +229 -0
- pypodlib/sync/playlist_parser.py +355 -0
- pypodlib/sync/quick_writes.py +384 -0
- pypodlib/sync/review_selection.py +254 -0
- pypodlib/sync/rockbox_metadata.py +1341 -0
- pypodlib/sync/scrobble_plan.py +43 -0
- pypodlib/sync/source_identity.py +255 -0
- pypodlib/sync/spl_evaluator.py +571 -0
- pypodlib/sync/sync_executor.py +4673 -0
- pypodlib/sync/sync_playlist_files.py +191 -0
- pypodlib/sync/sync_playlist_planner.py +204 -0
- pypodlib/sync/track_identity.py +194 -0
- pypodlib/sync/transcode_cache.py +829 -0
- pypodlib/sync/transcoder.py +2292 -0
- pypodlib/sync/unknown_metadata.py +307 -0
- pypodlib/sync_progress_stages.py +295 -0
- pypodlib-0.1.0.dist-info/METADATA +124 -0
- pypodlib-0.1.0.dist-info/RECORD +183 -0
- pypodlib-0.1.0.dist-info/WHEEL +4 -0
- pypodlib-0.1.0.dist-info/licenses/LICENSE +26 -0
pypodlib/__init__.py
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"""
|
|
2
|
+
pypodlib — communicate with iPod Classic/Nano/Mini devices from Python.
|
|
3
|
+
|
|
4
|
+
pyPodLib is a pure-Python library that reads and writes the iPod's on-disk
|
|
5
|
+
library (iTunesDB / iTunesCDB) without iTunes. It can:
|
|
6
|
+
|
|
7
|
+
- detect and identify a connected iPod (model, generation, capacity, colour)
|
|
8
|
+
- read tracks, playlists, podcasts, smart playlists and play counts
|
|
9
|
+
- write the database back with the correct per-device checksum signature
|
|
10
|
+
- copy media files onto the device and regenerate the database
|
|
11
|
+
|
|
12
|
+
Typical usage::
|
|
13
|
+
|
|
14
|
+
import pypodlib
|
|
15
|
+
|
|
16
|
+
ipod = pypodlib.connect("/media/user/IPOD") # or scan_ipods()[0]
|
|
17
|
+
print(ipod.model.family, ipod.model.generation)
|
|
18
|
+
|
|
19
|
+
lib = ipod.library()
|
|
20
|
+
for track in lib.tracks:
|
|
21
|
+
print(track.title, track.artist)
|
|
22
|
+
|
|
23
|
+
lib.tracks[0].rating = 5
|
|
24
|
+
ipod.save()
|
|
25
|
+
|
|
26
|
+
The low-level modules remain importable directly (``pypodlib.device``,
|
|
27
|
+
``pypodlib.itunesdb_parser``, ``pypodlib.itunesdb_writer``, ...).
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
from __future__ import annotations
|
|
31
|
+
|
|
32
|
+
from .api import IPod, Library, Playlist, Track, connect, library_from_path, scan_ipods
|
|
33
|
+
|
|
34
|
+
__version__ = "0.1.0"
|
|
35
|
+
|
|
36
|
+
__all__ = [
|
|
37
|
+
"__version__",
|
|
38
|
+
"connect",
|
|
39
|
+
"scan_ipods",
|
|
40
|
+
"library_from_path",
|
|
41
|
+
"IPod",
|
|
42
|
+
"Library",
|
|
43
|
+
"Track",
|
|
44
|
+
"Playlist",
|
|
45
|
+
]
|