ΠΡΠΎΠ΅ΠΊΡ Funkwhale Π²ΡΠΏΡΡΡΠΈΠ» ΠΏΠ΅ΡΠ²ΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ. Π ΡΠ°ΠΌΠΊΠ°Ρ ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΈΠ²Ρ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ Python Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΠΊΠ° Django, Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΡΠ·ΡΠΊΠΈ ΠΈ ΠΏΠΎΠ΄ΠΊΠ°ΡΡΠΎΠ², ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ Subsonic API ΠΈΠ»ΠΈ ΡΠΎΠ΄Π½ΠΎΠ³ΠΎ Funkwhale API, ΠΈ Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² Funkwhale, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΡΠ΅Π΄Π΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΡΠ΅ΡΠΈ ActivityPub.
ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ Π°ΡΠ΄ΠΈΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ ΠΊΠ°Π½Π°Π»ΠΎΠ²: Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ β ΡΡΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π°ΡΡΠΈΡΡΠΎΠ² ΡΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΌ UUID Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π΄ΡΠ΅ΡΠ°, Π° ΠΊΠ°Π½Π°Π» β Π΄ΠΈΡΠΊΠΎΠ³ΡΠ°ΡΠΈΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π·Π°Π΄Π°ΡΡΡΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΡΠΈΡΠ°Π΅ΠΌΡΠΉ Π°Π΄ΡΠ΅Ρ; ΠΊΠ°Π½Π°Π»Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ Π΄Π»Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠΎΠ΄ΠΊΠ°ΡΡΠΎΠ². Π Π°Π±ΠΎΡΠ° Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠ°ΠΌΠΈ ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° ΡΠ°ΠΊΠΎΠ²ΡΡ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ β PeerTube: Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡΡΡ ΠΊΠ°ΠΊ Π½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠ°ΠΊ ΠΈ Π½Π° Π΅Π³ΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΠΊΠ°Π½Π°Π»Ρ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²Π΅Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ ActivityPub, ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ, Π²ΡΠΎΠ΄Π΅ Mastodon ΠΈ Pleroma.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈΠ»ΠΈ ΠΊΠ°Π½Π°Π»Π° ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΌΡΠ·ΡΠΊΡ. Π€Π°ΠΉΠ»ΠΎΠ²ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π΄Π»Ρ Π½Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠ°ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ, ΡΠ°ΠΊ ΠΈ ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π΅ Amazon S3. ΠΠ°Π³ΡΡΠ·ΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π»ΡΠ±ΠΎΠΉ ΡΠ°ΠΉΠ» ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ°, Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΡΠ΅ΡΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° (ΡΡΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π΅Π»Π°Π΅Ρ PeerTube, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π·Π°Π³ΡΡΠ·ΠΊΡ Π°ΡΠ΄ΠΈΠΎ). Funkwhale ΡΡΠΈΡΡΠ²Π°Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Π² ΡΠ°ΠΉΠ»Ρ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΎΠ±Π»ΠΎΠΆΠΊΠΈ, Π° Π² ΡΠ»ΡΡΠ°Π΅ ΠΈΡ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ MusicBrainz Picard Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΡΠ΅Π³ΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ. Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π² Π²ΠΈΠ΄Π΅ ΡΠ΅Π²ΠΈΠ·ΠΈΠΉ Ρ Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
ΠΠ· ΡΠΆΠ΅ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΠΎΠΉ ΠΌΡΠ·ΡΠΊΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΠΊΠ°Π½Π°Π»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΏΠ»Π΅ΠΉΠ»ΠΈΡΡΡ, ΡΠ°Π΄ΠΈΠΎΡΡΠ°Π½ΡΠΈΠΈ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ ΡΡΠ΅ΠΊΠΈ ΠΈΠ·Π±ΡΠ°Π½Π½ΡΠΌΠΈ. Π£Π΄Π°Π»ΡΠ½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΠΌΠΎΠ³ΡΡ Π·Π°ΠΏΡΠΎΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²Π°ΡΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΠΈΠ»ΠΈ ΠΊΠ°Π½Π°Π»Ρ, ΠΏΡΠΎΡΡΠΎ Π²ΡΡΠ°Π²ΠΈΠ² ΡΡΡΠ»ΠΊΡ Π½Π° Π½Π΅Ρ Π² ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΡ ΡΡΡΠΎΠΊΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠ½ΠΎΠ½ΠΈΠΌΠ½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΠΌΠΎΠ³ΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΌΡΠ·ΡΠΊΡ ΠΈΠ· Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊΠΎ Π²ΡΠ΅ΠΉ ΠΌΡΠ·ΡΠΊΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ° Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π·Π°ΠΉΠ΄Ρ ΡΠ΅ΡΠ΅Π· Π»ΡΠ±ΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ Subsonic API β Π΅ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°, Π½ΡΠ½Π΅ ΠΏΠΎΠ΄ ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΠΎΠΉ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ, Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΠΈΠΌΠΈΡΡ ΠΎΡΠ²Π΅ΡΠ²Π»Π΅Π½ΠΈΡΠΌΠΈ ΡΡΠ°ΡΠΎΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ ΠΏΠΎΠ΄ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ, β ΠΈΠ»ΠΈ ΡΠΎΠ΄Π½ΠΎΠ³ΠΎ Funkwhale API, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Otter Π΄Π»Ρ Android.
ΠΠ»ΠΈΠ΅Π½ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ Π·Π°ΠΏΡΠΎΡΠΈΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΡΠ°Π½ΡΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΡΡΠ΅ΠΊΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ· FLAC Π² MP3 Ρ ΠΌΠ΅Π½ΡΡΠΈΠΌ Π±ΠΈΡΡΠ΅ΠΉΡΠΎΠΌ, ΡΡΠ΅Π±ΡΡΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΡΡΠ°ΡΠΈΠΊΠ°).
ΠΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠ° Π½Π° RSS-Π»Π΅Π½ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΡΠΆΠ΅ ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ°ΡΡΡ.
ΠΠ· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΡΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅:
- ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΡΠ΅Π±ΡΠ΅ΠΌΠ°Ρ Π²Π΅ΡΡΠΈΡ Python ΠΏΠΎΠ΄Π½ΡΡΠ° Π΄ΠΎ 3.6;
- Π»ΠΎΠΌΠ°ΡΡΠΈΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΌ API;
- ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ JSON-ΡΠΎΠΊΠ΅Π½ΠΎΠ² (JWT) Π² ΠΏΠΎΠ»ΡΠ·Ρ OAuth;
- ΡΠ»ΡΡΡΠ΅Π½Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅Π²ΡΡ Π΄Π»Ρ ΠΎΠ±Π»ΠΎΠΆΠ΅ΠΊ;
- Π² Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ° Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ° ΠΌΡΠ·ΡΠΊΠΈ ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ°;
- ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠΉ ΡΡΠ΅ΠΊΠΎΠ² ΠΈ Π°Π»ΡΠ±ΠΎΠΌΠΎΠ²;
- Π½ΠΎΠ²Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ° ΠΏΠΎΠΈΡΠΊΠ°;
- ΠΊΠ½ΠΎΠΏΠΊΠ° Β«ΠΈΠ³ΡΠ°ΡΡΒ» Π½Π° ΡΡΠ΅ΠΊΠ°Ρ ΠΈ Π°Π»ΡΠ±ΠΎΠΌΠ°Ρ ΡΠ΅ΠΏΠ΅ΡΡ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π° Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΡΠ΅ΠΊΠΈ Π² Π½Π΅Ρ;
- ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΊΡΠΎΠ±Π±Π»ΠΈΠ½Π³Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Last.fm API v2.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru