keotl / ohdieux

A podcast feed converted for Radio-Canada Ohdio / Un convertisseur de flux de balados pour Radio-Canada Ohdio
https://ohdieux.ligature.ca
GNU Affero General Public License v3.0
31 stars 5 forks source link

Option pour version .aac au lieu du .mp4 #19

Closed maforget closed 9 months ago

maforget commented 9 months ago

Ca fonctionne bien avec MusicBee, avec un bémol. Étant donné que le fichier est un .mp4 le lecteur pense qu'il s'agit d'une podcast vidéo et va ouvrir le lien dans le navigateur. Si téléchargé localement via le programme, le lecteur vidéo local s'ouvre. Il faut renommer le fichier manuellement en .m4a (ou .aac) et renommer la location pour le lire dans mon lecteur.

Pourtant tel que mentionné dans le #12, le fichier .aac semble être disponible également. Le fichier .mp4 est en réalité un fichier aac dans un conteneur mp4 vidéo. Techniquement étant audio seulement il devrait être .m4a. Je comprends que ce fichier .mp4 est plus compatible que le flux .aac direct et il est préférable au .aac ou .m3u8.

En regardant le code il semble que le paramètre tech=progressive donne le fichier .mp4, y a t'il d'autre valeur pour avoir d'autre type de fichier?

Pour ma part MusicBee prends en charge correctement le lien hls/.aac. Au pire un paramètre pourrait être rajouté pour recevoir le .aac au lieu du .mp4.

keotl commented 9 months ago

Salut, malheureusement, on est un peu limité à ce que l'API d'ohdio est prêt à nous retourner.

De ce que j'ai pu voir, un fichier .aac n'existe que pour une très faible minorité de (vieilles) émissions, et ce lien est retourné avec tech=progressive s'il existe. Pour le reste, on nous retourne un fichier avec extension .mp4, si le téléchargement local est permis. Autrement, on est forcé d'utiliser tech=hls qui retourne des fichiers .m3u8.

Si MusicBee prend en charge correctement les fichiers HLS (.m3u8), je crois que le mieux qu'on pourrait faire serait d'ajouter une option pour favoriser tech=hls, ce qui ne donnerait aucun fichier .mp4.

maforget commented 9 months ago

Pourtant j'ai testé avec une émission sortie il y a 2 jours. Firefox ne reconnaissent pas le format. Et en téléchargeant l'extension était en .mp3. Malgré tout MeidaInfo indique bien qu'il s'agit d'un AAC.

Quoi qu'il en soit oui MusicBee semble lire le lien .m3u8 correctement. Par contre on ne peut pas changer la position avec le .m3u8 tandis qu'en changeant l'extension à .aac je peux changer manuellement la position.

L'idée était de standardiser le format du conteneur. Mais à moins d'une trouvailles pour un format .mp3 je comprends que le .mp4 est beaucoup plus approprié.

Pour le peu que j'écoute ohDio pour l'instant le renommage manuel fait l'affaire. C'est juste un petit inconvénient que l'extension .aac aurait pu éviter. Mais je comprends que c'est assez "fringe" comme problème. Faudrait que je regarde avec le dev de MusicBee s'il n'a pas une façon de changer de comportement.

keotl commented 9 months ago

Intéressant... Aurais-tu un exemple d'émission qui permet des liens .aac? Pour clarifier, est-ce que tu renomme l'extension du fichier avant ou après l'avoir téléchargé sur ton ordinateur?

maforget commented 9 months ago

Par exemple pour le dernier épisode des décrypteurs (11099) => https://services.radio-canada.ca/media/validation/v2/?appCode=medianet&connectionType=hd&idMedia=8863469&multibitrate=true&output=json&tech=progressive

J'ai copié le liens et changé mp4 par hls et l'extension par aac https://rcavmedias-static.akamaized.net/mp4/8b5b90d2-2a63-4e08-9aed-53913a203938/2023-12-08_11_53_31_decrypteurslebaladoohdio_0000_128.mp4 => https://rcavmedias-static.akamaized.net/hls/8b5b90d2-2a63-4e08-9aed-53913a203938/2023-12-08_11_53_31_decrypteurslebaladoohdio_0000_128.aac.

En copiant le lien dans Firefox et en enregistrant le lien il me donne l'extension .mp3, malgré que le fichier et bel et bien un aac dans ce cas oui je change l'extension pour quel sois bel et bien aac. Mais normalement je télécharge avec Jdownloader2 et celui-ci me donne le même fichier aac.

Remarque intéressante en copiant le lien https://rcavmedias-static.akamaized.net/hls/8b5b90d2-2a63-4e08-9aed-53913a203938/2023-12-08_11_53_31_decrypteurslebaladoohdio_0000_master.m3u8 avec JDownloader2 on me donne le lien 2023-12-08_11_53_31_decrypteurslebaladoohdio_0000_128.m3u8. Celui-ci est le lien qui est dans le fichier master.m3u8.

2023-12-08_11_53_31_decrypteurslebaladoohdio_0000_master.m3u8

#EXTM3U
#EXT-X-VERSION:4
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-STREAM-INF:BANDWIDTH=128461,AVERAGE-BANDWIDTH=128124,CODECS="mp4a.40.2"
2023-12-08_11_53_31_decrypteurslebaladoohdio_0000_128.m3u8

On peut bien remarqué le type mp4a et en ouvrant manuellement le 2023-12-08_11_53_31_decrypteurslebaladoohdio_0000_128.m3u8 je me retrouve au fichier .aac préalable (copié plusieurs fois, mais toujours le même fichier). Ce n'est pas juste un fragment du fichier comme les fichier m3u8 le sont normalement.

2023-12-08_11_53_31_decrypteurslebaladoohdio_0000_128.m3u8 (juste une fraction du fichier)

#EXTM3U
#EXT-X-VERSION:4
#EXT-X-TARGETDURATION:11
#EXT-X-MEDIA-SEQUENCE:1
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:10.005,
#EXT-X-BYTERANGE:160488@0
2023-12-08_11_53_31_decrypteurslebaladoohdio_0000_128.aac
#EXTINF:10.005,
#EXT-X-BYTERANGE:160192@160488
2023-12-08_11_53_31_decrypteurslebaladoohdio_0000_128.aac

En téléchargeant le fichier .m3u8 avec JDownloader2 on me donne le nom de fichier de 2023-12-08_11_53_31_decrypteurslebaladoohdio_0000_128 (aac).m4a et en regardant le type de fichier celui-ci est vraiment un mp4a. Mais dans ce cas je ne sais pas si JDownloader2 n'a pas créer le conteneur mp4a en se basant sur le codec dans le m3u8 et intégré le aac.

Bref si je suis la piste du .m3u8, je me retrouve toujours au fichier .aac.

2023-12-08_11_53_31_decrypteurslebaladoohdio_0000_128.mp4

Format                         : MPEG-4
Format profile                 : Base Media / Version 2
Codec ID                       : mp42 (mp42/isom)
File size                      : 38.3 MiB
Duration                       : 33 min 29 s
Overall bit rate mode          : Variable
Overall bit rate               : 160 kb/s
Encoded date                   : UTC 2023-12-08 12:04:48
Tagged date                    : UTC 2023-12-08 12:04:48

Audio
ID                             : 1
Format                         : AAC LC
Format/Info                    : Advanced Audio Codec Low Complexity
Codec ID                       : mp4a-40-2
Duration                       : 33 min 29 s
Bit rate mode                  : Variable
Bit rate                       : 125 kb/s
Channel(s)                     : 2 channels
Channel layout                 : L R
Sampling rate                  : 48.0 kHz
Frame rate                     : 46.875 FPS (1024 SPF)
Compression mode               : Lossy
Stream size                    : 30.1 MiB (78%)
Language                       : English
Encoded date                   : UTC 2023-12-08 12:04:48
Tagged date                    : UTC 2023-12-08 12:04:48

2023-12-08_11_53_31_decrypteurslebaladoohdio_0000_128.aac

Format                         : ADTS
Format/Info                    : Audio Data Transport Stream
File size                      : 30.7 MiB
Overall bit rate mode          : Variable

Audio
Format                         : AAC LC
Format/Info                    : Advanced Audio Codec Low Complexity
Format version                 : Version 4
Codec ID                       : 2
Bit rate mode                  : Variable
Channel(s)                     : 2 channels
Channel layout                 : L R
Sampling rate                  : 48.0 kHz
Frame rate                     : 46.875 FPS (1024 SPF)
Compression mode               : Lossy
Stream size                    : 30.7 MiB (100%)

2023-12-08_11_53_31_decrypteurslebaladoohdio_0000_128 (aac).m4a

Format                         : MPEG-4
Format profile                 : Apple audio with iTunes info
Codec ID                       : M4A  (M4A /isom/iso2)
File size                      : 30.4 MiB
Duration                       : 33 min 29 s
Overall bit rate mode          : Variable
Overall bit rate               : 127 kb/s
Writing application            : Lavf58.39.101

Audio
ID                             : 1
Format                         : AAC LC
Format/Info                    : Advanced Audio Codec Low Complexity
Codec ID                       : mp4a-40-2
Duration                       : 33 min 29 s
Bit rate mode                  : Variable
Bit rate                       : 125 kb/s
Maximum bit rate               : 131 kb/s
Channel(s)                     : 2 channels
Channel layout                 : L R
Sampling rate                  : 48.0 kHz
Frame rate                     : 46.875 FPS (1024 SPF)
Compression mode               : Lossy
Stream size                    : 30.0 MiB (99%)
Default                        : Yes
Alternate group                : 1
keotl commented 9 months ago

Merci beaucoup pour cette documentation détaillée. Je devine qu'il s'agit d'un détail d'implémentation de la manière dont l'équipe d'Ohdio met en ligne les nouveaux programmes au moyen d'un seul fichier « maître » .aac. J'ajouterais à cette analyse que pour d'autres vieux épisodes, par exemple les plus anciens de 672, ils utilisent réellement des fichiers segmentés, mais c'est aussi pourquoi ces épisodes ne semblent pas supporter pas le téléchargement hors ligne avec tech=progressive.

J'ai déployé une nouvelle version d'ohdieux avec une option pour remplacer les urls par des liens directs vers le fichier aac. Comme ce n'est pas le comportement de l'application mobile, je préfère ne pas l'activer par défaut pour tous les urls existants.