ΠΡΠΎΠ΅ΠΊΡ 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

